# -*- 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__

class yc_config_openconfig_ap_manager__provision_aps_provision_ap_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-ap-manager - based on the path /provision-aps/provision-ap/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Config container for assigning hostnames to APs.
  """
  __slots__ = ('_path_helper', '_extmethods', '__mac','__hostname','__country_code',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/ap-manager'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__mac = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="mac", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='oc-yang:mac-address', is_config=True)
    self.__hostname = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(((([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.)*([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.?)|\\.)', 'length': ['1..253']}), is_leaf=True, yang_name="hostname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='oc-inet:domain-name', is_config=True)
    self.__country_code = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[A-Z]{2}'}), is_leaf=True, yang_name="country-code", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='string', is_config=True)

    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 ['provision-aps', 'provision-ap', 'config']

  def _get_mac(self):
    """
    Getter method for mac, mapped from YANG variable /provision_aps/provision_ap/config/mac (oc-yang:mac-address)

    YANG Description: MAC address of the AP primary Ethernet interface. If AP
has multiple Ethernet interfaces, this would be the MAC printed
on the unit label and referenced within the management system.
Vendors MUST reject attempts to configure this leaf.
    """
    return self.__mac
      
  def _set_mac(self, v, load=False):
    """
    Setter method for mac, mapped from YANG variable /provision_aps/provision_ap/config/mac (oc-yang:mac-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mac is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mac() directly.

    YANG Description: MAC address of the AP primary Ethernet interface. If AP
has multiple Ethernet interfaces, this would be the MAC printed
on the unit label and referenced within the management system.
Vendors MUST reject attempts to configure this leaf.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="mac", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='oc-yang:mac-address', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mac must be of a type compatible with oc-yang:mac-address""",
          'defined-type': "oc-yang:mac-address",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="mac", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='oc-yang:mac-address', is_config=True)""",
        })

    self.__mac = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mac(self):
    self.__mac = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="mac", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='oc-yang:mac-address', is_config=True)


  def _get_hostname(self):
    """
    Getter method for hostname, mapped from YANG variable /provision_aps/provision_ap/config/hostname (oc-inet:domain-name)

    YANG Description: Hostname of the Access Point.
    """
    return self.__hostname
      
  def _set_hostname(self, v, load=False):
    """
    Setter method for hostname, mapped from YANG variable /provision_aps/provision_ap/config/hostname (oc-inet:domain-name)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_hostname is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_hostname() directly.

    YANG Description: Hostname of the Access Point.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(((([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.)*([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.?)|\\.)', 'length': ['1..253']}), is_leaf=True, yang_name="hostname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='oc-inet:domain-name', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """hostname must be of a type compatible with oc-inet:domain-name""",
          'defined-type': "oc-inet:domain-name",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(((([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.)*([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.?)|\\.)', 'length': ['1..253']}), is_leaf=True, yang_name="hostname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='oc-inet:domain-name', is_config=True)""",
        })

    self.__hostname = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_hostname(self):
    self.__hostname = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(((([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.)*([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.?)|\\.)', 'length': ['1..253']}), is_leaf=True, yang_name="hostname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='oc-inet:domain-name', is_config=True)


  def _get_country_code(self):
    """
    Getter method for country_code, mapped from YANG variable /provision_aps/provision_ap/config/country_code (string)

    YANG Description: Country code where the AP operates in ISO 3166-1 alpha-2
format.
    """
    return self.__country_code
      
  def _set_country_code(self, v, load=False):
    """
    Setter method for country_code, mapped from YANG variable /provision_aps/provision_ap/config/country_code (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_country_code is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_country_code() directly.

    YANG Description: Country code where the AP operates in ISO 3166-1 alpha-2
format.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[A-Z]{2}'}), is_leaf=True, yang_name="country-code", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='string', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """country_code must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[A-Z]{2}'}), is_leaf=True, yang_name="country-code", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='string', is_config=True)""",
        })

    self.__country_code = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_country_code(self):
    self.__country_code = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[A-Z]{2}'}), is_leaf=True, yang_name="country-code", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='string', is_config=True)

  mac = __builtin__.property(_get_mac, _set_mac)
  hostname = __builtin__.property(_get_hostname, _set_hostname)
  country_code = __builtin__.property(_get_country_code, _set_country_code)


  _pyangbind_elements = OrderedDict([('mac', mac), ('hostname', hostname), ('country_code', country_code), ])


class yc_state_openconfig_ap_manager__provision_aps_provision_ap_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-ap-manager - based on the path /provision-aps/provision-ap/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: State container for assigning hostnames to APs.
  """
  __slots__ = ('_path_helper', '_extmethods', '__mac','__hostname','__country_code',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/ap-manager'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__mac = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="mac", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='oc-yang:mac-address', is_config=False)
    self.__hostname = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(((([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.)*([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.?)|\\.)', 'length': ['1..253']}), is_leaf=True, yang_name="hostname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='oc-inet:domain-name', is_config=False)
    self.__country_code = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[A-Z]{2}'}), is_leaf=True, yang_name="country-code", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='string', 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 ['provision-aps', 'provision-ap', 'state']

  def _get_mac(self):
    """
    Getter method for mac, mapped from YANG variable /provision_aps/provision_ap/state/mac (oc-yang:mac-address)

    YANG Description: MAC address of the AP primary Ethernet interface. If AP
has multiple Ethernet interfaces, this would be the MAC printed
on the unit label and referenced within the management system.
Vendors MUST reject attempts to configure this leaf.
    """
    return self.__mac
      
  def _set_mac(self, v, load=False):
    """
    Setter method for mac, mapped from YANG variable /provision_aps/provision_ap/state/mac (oc-yang:mac-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mac is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mac() directly.

    YANG Description: MAC address of the AP primary Ethernet interface. If AP
has multiple Ethernet interfaces, this would be the MAC printed
on the unit label and referenced within the management system.
Vendors MUST reject attempts to configure this leaf.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="mac", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='oc-yang:mac-address', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mac must be of a type compatible with oc-yang:mac-address""",
          'defined-type': "oc-yang:mac-address",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="mac", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='oc-yang:mac-address', is_config=False)""",
        })

    self.__mac = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mac(self):
    self.__mac = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="mac", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='oc-yang:mac-address', is_config=False)


  def _get_hostname(self):
    """
    Getter method for hostname, mapped from YANG variable /provision_aps/provision_ap/state/hostname (oc-inet:domain-name)

    YANG Description: Hostname of the Access Point.
    """
    return self.__hostname
      
  def _set_hostname(self, v, load=False):
    """
    Setter method for hostname, mapped from YANG variable /provision_aps/provision_ap/state/hostname (oc-inet:domain-name)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_hostname is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_hostname() directly.

    YANG Description: Hostname of the Access Point.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(((([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.)*([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.?)|\\.)', 'length': ['1..253']}), is_leaf=True, yang_name="hostname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='oc-inet:domain-name', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """hostname must be of a type compatible with oc-inet:domain-name""",
          'defined-type': "oc-inet:domain-name",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(((([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.)*([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.?)|\\.)', 'length': ['1..253']}), is_leaf=True, yang_name="hostname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='oc-inet:domain-name', is_config=False)""",
        })

    self.__hostname = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_hostname(self):
    self.__hostname = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(((([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.)*([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.?)|\\.)', 'length': ['1..253']}), is_leaf=True, yang_name="hostname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='oc-inet:domain-name', is_config=False)


  def _get_country_code(self):
    """
    Getter method for country_code, mapped from YANG variable /provision_aps/provision_ap/state/country_code (string)

    YANG Description: Country code where the AP operates in ISO 3166-1 alpha-2
format.
    """
    return self.__country_code
      
  def _set_country_code(self, v, load=False):
    """
    Setter method for country_code, mapped from YANG variable /provision_aps/provision_ap/state/country_code (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_country_code is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_country_code() directly.

    YANG Description: Country code where the AP operates in ISO 3166-1 alpha-2
format.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[A-Z]{2}'}), is_leaf=True, yang_name="country-code", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='string', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """country_code must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[A-Z]{2}'}), is_leaf=True, yang_name="country-code", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='string', is_config=False)""",
        })

    self.__country_code = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_country_code(self):
    self.__country_code = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[A-Z]{2}'}), is_leaf=True, yang_name="country-code", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='string', is_config=False)

  mac = __builtin__.property(_get_mac)
  hostname = __builtin__.property(_get_hostname)
  country_code = __builtin__.property(_get_country_code)


  _pyangbind_elements = OrderedDict([('mac', mac), ('hostname', hostname), ('country_code', country_code), ])


class yc_provision_ap_openconfig_ap_manager__provision_aps_provision_ap(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-ap-manager - based on the path /provision-aps/provision-ap. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: List of MAC addresses that will have hostnames assigned.
  """
  __slots__ = ('_path_helper', '_extmethods', '__mac','__config','__state',)

  _yang_name = 'provision-ap'
  _yang_namespace = 'http://openconfig.net/yang/ap-manager'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__mac = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="mac", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='leafref', is_config=True)
    self.__config = YANGDynClass(base=yc_config_openconfig_ap_manager__provision_aps_provision_ap_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_ap_manager__provision_aps_provision_ap_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/ap-manager', defining_module='openconfig-ap-manager', yang_type='container', is_config=True)

    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 ['provision-aps', 'provision-ap']

  def _get_mac(self):
    """
    Getter method for mac, mapped from YANG variable /provision_aps/provision_ap/mac (leafref)

    YANG Description: Reference to the MAC address list key. This leaf is a reference
only and not to be configured.
    """
    return self.__mac
      
  def _set_mac(self, v, load=False):
    """
    Setter method for mac, mapped from YANG variable /provision_aps/provision_ap/mac (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mac is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mac() directly.

    YANG Description: Reference to the MAC address list key. This leaf is a reference
only and not to be configured.
    """
    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="mac", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='leafref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mac must be of a type compatible with leafref""",
          'defined-type': "leafref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="mac", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='leafref', is_config=True)""",
        })

    self.__mac = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mac(self):
    self.__mac = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="mac", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='leafref', is_config=True)


  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /provision_aps/provision_ap/config (container)

    YANG Description: Config container for assigning hostnames to APs.
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /provision_aps/provision_ap/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Config container for assigning hostnames to APs.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_ap_manager__provision_aps_provision_ap_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_ap_manager__provision_aps_provision_ap_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_ap_manager__provision_aps_provision_ap_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /provision_aps/provision_ap/state (container)

    YANG Description: State container for assigning hostnames to APs.
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /provision_aps/provision_ap/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 container for assigning hostnames to APs.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_ap_manager__provision_aps_provision_ap_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/ap-manager', defining_module='openconfig-ap-manager', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_ap_manager__provision_aps_provision_ap_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/ap-manager', defining_module='openconfig-ap-manager', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_ap_manager__provision_aps_provision_ap_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/ap-manager', defining_module='openconfig-ap-manager', yang_type='container', is_config=True)

  mac = __builtin__.property(_get_mac, _set_mac)
  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)


  _pyangbind_elements = OrderedDict([('mac', mac), ('config', config), ('state', state), ])


class yc_provision_aps_openconfig_ap_manager__provision_aps(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-ap-manager - based on the path /provision-aps. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Top most container for assigning hostnames to APs.
  """
  __slots__ = ('_path_helper', '_extmethods', '__provision_ap',)

  _yang_name = 'provision-aps'
  _yang_namespace = 'http://openconfig.net/yang/ap-manager'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__provision_ap = YANGDynClass(base=YANGListType("mac",yc_provision_ap_openconfig_ap_manager__provision_aps_provision_ap, yang_name="provision-ap", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='mac', extensions=None), is_container='list', yang_name="provision-ap", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='list', is_config=True)

    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 ['provision-aps']

  def _get_provision_ap(self):
    """
    Getter method for provision_ap, mapped from YANG variable /provision_aps/provision_ap (list)

    YANG Description: List of MAC addresses that will have hostnames assigned.
    """
    return self.__provision_ap
      
  def _set_provision_ap(self, v, load=False):
    """
    Setter method for provision_ap, mapped from YANG variable /provision_aps/provision_ap (list)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_provision_ap is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_provision_ap() directly.

    YANG Description: List of MAC addresses that will have hostnames assigned.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGListType("mac",yc_provision_ap_openconfig_ap_manager__provision_aps_provision_ap, yang_name="provision-ap", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='mac', extensions=None), is_container='list', yang_name="provision-ap", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='list', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """provision_ap must be of a type compatible with list""",
          'defined-type': "list",
          'generated-type': """YANGDynClass(base=YANGListType("mac",yc_provision_ap_openconfig_ap_manager__provision_aps_provision_ap, yang_name="provision-ap", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='mac', extensions=None), is_container='list', yang_name="provision-ap", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='list', is_config=True)""",
        })

    self.__provision_ap = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_provision_ap(self):
    self.__provision_ap = YANGDynClass(base=YANGListType("mac",yc_provision_ap_openconfig_ap_manager__provision_aps_provision_ap, yang_name="provision-ap", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='mac', extensions=None), is_container='list', yang_name="provision-ap", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='list', is_config=True)

  provision_ap = __builtin__.property(_get_provision_ap, _set_provision_ap)


  _pyangbind_elements = OrderedDict([('provision_ap', provision_ap), ])


class yc_state_openconfig_ap_manager__joined_aps_joined_ap_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-ap-manager - based on the path /joined-aps/joined-ap/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: State container for Joined APs.
  """
  __slots__ = ('_path_helper', '_extmethods', '__mac','__hostname','__opstate','__up_time','__uptime','__enabled','__serial','__model','__software_version','__ipv4','__ipv6','__power_source',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/ap-manager'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__mac = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="mac", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='oc-yang:mac-address', is_config=False)
    self.__hostname = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(((([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.)*([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.?)|\\.)', 'length': ['1..253']}), is_leaf=True, yang_name="hostname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='oc-inet:domain-name', is_config=False)
    self.__opstate = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'UP': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:UP': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:UP': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'DOWN': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:DOWN': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:DOWN': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'UPGRADING': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:UPGRADING': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:UPGRADING': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},), is_leaf=True, yang_name="opstate", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='identityref', is_config=False)
    self.__up_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="up-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='oc-types:timeticks64', is_config=False)
    self.__uptime = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="uptime", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='uint32', is_config=False)
    self.__enabled = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='boolean', is_config=False)
    self.__serial = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="serial", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='string', is_config=False)
    self.__model = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="model", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='string', is_config=False)
    self.__software_version = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="software-version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='string', is_config=False)
    self.__ipv4 = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}), is_leaf=True, yang_name="ipv4", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='oc-inet:ipv4-address', is_config=False)
    self.__ipv6 = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}), is_leaf=True, yang_name="ipv6", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='oc-inet:ipv6-address', is_config=False)
    self.__power_source = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'AT': {}, 'AF': {}, 'BT_TYPE3': {}, 'BT_TYPE4': {}, 'PLUG': {}},), is_leaf=True, yang_name="power-source", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='enumeration', 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 ['joined-aps', 'joined-ap', 'state']

  def _get_mac(self):
    """
    Getter method for mac, mapped from YANG variable /joined_aps/joined_ap/state/mac (oc-yang:mac-address)

    YANG Description: MAC address of the AP primary Ethernet interface. If AP
has multiple Ethernet interfaces, this would be the MAC printed
on the unit label and referenced within the management system.
Vendors MUST reject attempts to configure this leaf.
    """
    return self.__mac
      
  def _set_mac(self, v, load=False):
    """
    Setter method for mac, mapped from YANG variable /joined_aps/joined_ap/state/mac (oc-yang:mac-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mac is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mac() directly.

    YANG Description: MAC address of the AP primary Ethernet interface. If AP
has multiple Ethernet interfaces, this would be the MAC printed
on the unit label and referenced within the management system.
Vendors MUST reject attempts to configure this leaf.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="mac", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='oc-yang:mac-address', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mac must be of a type compatible with oc-yang:mac-address""",
          'defined-type': "oc-yang:mac-address",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="mac", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='oc-yang:mac-address', is_config=False)""",
        })

    self.__mac = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mac(self):
    self.__mac = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="mac", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='oc-yang:mac-address', is_config=False)


  def _get_hostname(self):
    """
    Getter method for hostname, mapped from YANG variable /joined_aps/joined_ap/state/hostname (oc-inet:domain-name)

    YANG Description: Hostname of the Access Point.
    """
    return self.__hostname
      
  def _set_hostname(self, v, load=False):
    """
    Setter method for hostname, mapped from YANG variable /joined_aps/joined_ap/state/hostname (oc-inet:domain-name)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_hostname is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_hostname() directly.

    YANG Description: Hostname of the Access Point.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(((([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.)*([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.?)|\\.)', 'length': ['1..253']}), is_leaf=True, yang_name="hostname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='oc-inet:domain-name', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """hostname must be of a type compatible with oc-inet:domain-name""",
          'defined-type': "oc-inet:domain-name",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(((([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.)*([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.?)|\\.)', 'length': ['1..253']}), is_leaf=True, yang_name="hostname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='oc-inet:domain-name', is_config=False)""",
        })

    self.__hostname = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_hostname(self):
    self.__hostname = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(((([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.)*([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.?)|\\.)', 'length': ['1..253']}), is_leaf=True, yang_name="hostname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='oc-inet:domain-name', is_config=False)


  def _get_opstate(self):
    """
    Getter method for opstate, mapped from YANG variable /joined_aps/joined_ap/state/opstate (identityref)

    YANG Description: The current operational state of the AP.
    """
    return self.__opstate
      
  def _set_opstate(self, v, load=False):
    """
    Setter method for opstate, mapped from YANG variable /joined_aps/joined_ap/state/opstate (identityref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_opstate is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_opstate() directly.

    YANG Description: The current operational state of the AP.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'UP': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:UP': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:UP': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'DOWN': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:DOWN': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:DOWN': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'UPGRADING': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:UPGRADING': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:UPGRADING': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},), is_leaf=True, yang_name="opstate", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='identityref', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """opstate must be of a type compatible with identityref""",
          'defined-type': "openconfig-ap-manager:identityref",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'UP': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:UP': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:UP': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'DOWN': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:DOWN': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:DOWN': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'UPGRADING': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:UPGRADING': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:UPGRADING': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},), is_leaf=True, yang_name="opstate", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='identityref', is_config=False)""",
        })

    self.__opstate = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_opstate(self):
    self.__opstate = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'UP': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:UP': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:UP': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'DOWN': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:DOWN': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:DOWN': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'UPGRADING': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:UPGRADING': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:UPGRADING': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},), is_leaf=True, yang_name="opstate", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='identityref', is_config=False)


  def _get_up_time(self):
    """
    Getter method for up_time, mapped from YANG variable /joined_aps/joined_ap/state/up_time (oc-types:timeticks64)

    YANG Description: Timestamp when this AP last changed its op-state to 'UP'. The value is
the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970
00:00:00 UTC).
    """
    return self.__up_time
      
  def _set_up_time(self, v, load=False):
    """
    Setter method for up_time, mapped from YANG variable /joined_aps/joined_ap/state/up_time (oc-types:timeticks64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_up_time is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_up_time() directly.

    YANG Description: Timestamp when this AP last changed its op-state to 'UP'. The value is
the timestamp in nanoseconds relative to the Unix Epoch (Jan 1, 1970
00:00:00 UTC).
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="up-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='oc-types:timeticks64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """up_time must be of a type compatible with oc-types:timeticks64""",
          'defined-type': "oc-types:timeticks64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="up-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='oc-types:timeticks64', is_config=False)""",
        })

    self.__up_time = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_up_time(self):
    self.__up_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="up-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='oc-types:timeticks64', is_config=False)


  def _get_uptime(self):
    """
    Getter method for uptime, mapped from YANG variable /joined_aps/joined_ap/state/uptime (uint32)

    YANG Description: Seconds this AP has been in the op-state of 'UP'.
    """
    return self.__uptime
      
  def _set_uptime(self, v, load=False):
    """
    Setter method for uptime, mapped from YANG variable /joined_aps/joined_ap/state/uptime (uint32)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_uptime is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_uptime() directly.

    YANG Description: Seconds this AP has been in the op-state of 'UP'.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="uptime", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='uint32', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """uptime must be of a type compatible with uint32""",
          'defined-type': "uint32",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="uptime", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='uint32', is_config=False)""",
        })

    self.__uptime = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_uptime(self):
    self.__uptime = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="uptime", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='uint32', is_config=False)


  def _get_enabled(self):
    """
    Getter method for enabled, mapped from YANG variable /joined_aps/joined_ap/state/enabled (boolean)

    YANG Description: Wheather the AP is enabled or disabled.
    """
    return self.__enabled
      
  def _set_enabled(self, v, load=False):
    """
    Setter method for enabled, mapped from YANG variable /joined_aps/joined_ap/state/enabled (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_enabled is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_enabled() directly.

    YANG Description: Wheather the AP is enabled or disabled.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """enabled must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='boolean', is_config=False)""",
        })

    self.__enabled = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_enabled(self):
    self.__enabled = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='boolean', is_config=False)


  def _get_serial(self):
    """
    Getter method for serial, mapped from YANG variable /joined_aps/joined_ap/state/serial (string)

    YANG Description: Serial number of the Access Point.
    """
    return self.__serial
      
  def _set_serial(self, v, load=False):
    """
    Setter method for serial, mapped from YANG variable /joined_aps/joined_ap/state/serial (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_serial is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_serial() directly.

    YANG Description: Serial number of the Access Point.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="serial", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='string', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """serial must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="serial", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='string', is_config=False)""",
        })

    self.__serial = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_serial(self):
    self.__serial = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="serial", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='string', is_config=False)


  def _get_model(self):
    """
    Getter method for model, mapped from YANG variable /joined_aps/joined_ap/state/model (string)

    YANG Description: Model number of the Access Point.
    """
    return self.__model
      
  def _set_model(self, v, load=False):
    """
    Setter method for model, mapped from YANG variable /joined_aps/joined_ap/state/model (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_model is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_model() directly.

    YANG Description: Model number of the Access Point.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="model", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='string', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """model must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="model", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='string', is_config=False)""",
        })

    self.__model = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_model(self):
    self.__model = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="model", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='string', is_config=False)


  def _get_software_version(self):
    """
    Getter method for software_version, mapped from YANG variable /joined_aps/joined_ap/state/software_version (string)

    YANG Description: Software version of the Access Point.
    """
    return self.__software_version
      
  def _set_software_version(self, v, load=False):
    """
    Setter method for software_version, mapped from YANG variable /joined_aps/joined_ap/state/software_version (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_software_version is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_software_version() directly.

    YANG Description: Software version of the Access Point.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="software-version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='string', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """software_version must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="software-version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='string', is_config=False)""",
        })

    self.__software_version = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_software_version(self):
    self.__software_version = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="software-version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='string', is_config=False)


  def _get_ipv4(self):
    """
    Getter method for ipv4, mapped from YANG variable /joined_aps/joined_ap/state/ipv4 (oc-inet:ipv4-address)

    YANG Description: The IPv4 address of the Access Point.
    """
    return self.__ipv4
      
  def _set_ipv4(self, v, load=False):
    """
    Setter method for ipv4, mapped from YANG variable /joined_aps/joined_ap/state/ipv4 (oc-inet:ipv4-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ipv4 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ipv4() directly.

    YANG Description: The IPv4 address of the Access Point.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}), is_leaf=True, yang_name="ipv4", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='oc-inet:ipv4-address', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ipv4 must be of a type compatible with oc-inet:ipv4-address""",
          'defined-type': "oc-inet:ipv4-address",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}), is_leaf=True, yang_name="ipv4", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='oc-inet:ipv4-address', is_config=False)""",
        })

    self.__ipv4 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ipv4(self):
    self.__ipv4 = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}), is_leaf=True, yang_name="ipv4", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='oc-inet:ipv4-address', is_config=False)


  def _get_ipv6(self):
    """
    Getter method for ipv6, mapped from YANG variable /joined_aps/joined_ap/state/ipv6 (oc-inet:ipv6-address)

    YANG Description: The IPv6 address of the Access Point.
    """
    return self.__ipv6
      
  def _set_ipv6(self, v, load=False):
    """
    Setter method for ipv6, mapped from YANG variable /joined_aps/joined_ap/state/ipv6 (oc-inet:ipv6-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ipv6 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ipv6() directly.

    YANG Description: The IPv6 address of the Access Point.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}), is_leaf=True, yang_name="ipv6", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='oc-inet:ipv6-address', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ipv6 must be of a type compatible with oc-inet:ipv6-address""",
          'defined-type': "oc-inet:ipv6-address",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}), is_leaf=True, yang_name="ipv6", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='oc-inet:ipv6-address', is_config=False)""",
        })

    self.__ipv6 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ipv6(self):
    self.__ipv6 = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}), is_leaf=True, yang_name="ipv6", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='oc-inet:ipv6-address', is_config=False)


  def _get_power_source(self):
    """
    Getter method for power_source, mapped from YANG variable /joined_aps/joined_ap/state/power_source (enumeration)

    YANG Description: Enumerate how the AP is being powered.
    """
    return self.__power_source
      
  def _set_power_source(self, v, load=False):
    """
    Setter method for power_source, mapped from YANG variable /joined_aps/joined_ap/state/power_source (enumeration)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_power_source is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_power_source() directly.

    YANG Description: Enumerate how the AP is being powered.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'AT': {}, 'AF': {}, 'BT_TYPE3': {}, 'BT_TYPE4': {}, 'PLUG': {}},), is_leaf=True, yang_name="power-source", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='enumeration', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """power_source must be of a type compatible with enumeration""",
          'defined-type': "openconfig-ap-manager:enumeration",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'AT': {}, 'AF': {}, 'BT_TYPE3': {}, 'BT_TYPE4': {}, 'PLUG': {}},), is_leaf=True, yang_name="power-source", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='enumeration', is_config=False)""",
        })

    self.__power_source = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_power_source(self):
    self.__power_source = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'AT': {}, 'AF': {}, 'BT_TYPE3': {}, 'BT_TYPE4': {}, 'PLUG': {}},), is_leaf=True, yang_name="power-source", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='enumeration', is_config=False)

  mac = __builtin__.property(_get_mac)
  hostname = __builtin__.property(_get_hostname)
  opstate = __builtin__.property(_get_opstate)
  up_time = __builtin__.property(_get_up_time)
  uptime = __builtin__.property(_get_uptime)
  enabled = __builtin__.property(_get_enabled)
  serial = __builtin__.property(_get_serial)
  model = __builtin__.property(_get_model)
  software_version = __builtin__.property(_get_software_version)
  ipv4 = __builtin__.property(_get_ipv4)
  ipv6 = __builtin__.property(_get_ipv6)
  power_source = __builtin__.property(_get_power_source)


  _pyangbind_elements = OrderedDict([('mac', mac), ('hostname', hostname), ('opstate', opstate), ('up_time', up_time), ('uptime', uptime), ('enabled', enabled), ('serial', serial), ('model', model), ('software_version', software_version), ('ipv4', ipv4), ('ipv6', ipv6), ('power_source', power_source), ])


class yc_joined_ap_openconfig_ap_manager__joined_aps_joined_ap(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-ap-manager - based on the path /joined-aps/joined-ap. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: List of access points that have joined the controller.
  """
  __slots__ = ('_path_helper', '_extmethods', '__hostname','__state',)

  _yang_name = 'joined-ap'
  _yang_namespace = 'http://openconfig.net/yang/ap-manager'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__hostname = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="hostname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='leafref', is_config=False)
    self.__state = YANGDynClass(base=yc_state_openconfig_ap_manager__joined_aps_joined_ap_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/ap-manager', defining_module='openconfig-ap-manager', 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 ['joined-aps', 'joined-ap']

  def _get_hostname(self):
    """
    Getter method for hostname, mapped from YANG variable /joined_aps/joined_ap/hostname (leafref)

    YANG Description: Reference to the MAC address list key.
    """
    return self.__hostname
      
  def _set_hostname(self, v, load=False):
    """
    Setter method for hostname, mapped from YANG variable /joined_aps/joined_ap/hostname (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_hostname is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_hostname() directly.

    YANG Description: Reference to the MAC address list key.
    """
    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="hostname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='leafref', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """hostname must be of a type compatible with leafref""",
          'defined-type': "leafref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="hostname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='leafref', is_config=False)""",
        })

    self.__hostname = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_hostname(self):
    self.__hostname = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="hostname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='leafref', is_config=False)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /joined_aps/joined_ap/state (container)

    YANG Description: State container for Joined APs.
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /joined_aps/joined_ap/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 container for Joined APs.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_ap_manager__joined_aps_joined_ap_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/ap-manager', defining_module='openconfig-ap-manager', 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=yc_state_openconfig_ap_manager__joined_aps_joined_ap_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/ap-manager', defining_module='openconfig-ap-manager', yang_type='container', is_config=False)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_ap_manager__joined_aps_joined_ap_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/ap-manager', defining_module='openconfig-ap-manager', yang_type='container', is_config=False)

  hostname = __builtin__.property(_get_hostname)
  state = __builtin__.property(_get_state)


  _pyangbind_elements = OrderedDict([('hostname', hostname), ('state', state), ])


class yc_joined_aps_openconfig_ap_manager__joined_aps(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-ap-manager - based on the path /joined-aps. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Top most container for joined-aps.
  """
  __slots__ = ('_path_helper', '_extmethods', '__joined_ap',)

  _yang_name = 'joined-aps'
  _yang_namespace = 'http://openconfig.net/yang/ap-manager'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__joined_ap = YANGDynClass(base=YANGListType("hostname",yc_joined_ap_openconfig_ap_manager__joined_aps_joined_ap, yang_name="joined-ap", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='hostname', extensions=None), is_container='list', yang_name="joined-ap", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='list', is_config=True)

    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 ['joined-aps']

  def _get_joined_ap(self):
    """
    Getter method for joined_ap, mapped from YANG variable /joined_aps/joined_ap (list)

    YANG Description: List of access points that have joined the controller.
    """
    return self.__joined_ap
      
  def _set_joined_ap(self, v, load=False):
    """
    Setter method for joined_ap, mapped from YANG variable /joined_aps/joined_ap (list)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_joined_ap is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_joined_ap() directly.

    YANG Description: List of access points that have joined the controller.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGListType("hostname",yc_joined_ap_openconfig_ap_manager__joined_aps_joined_ap, yang_name="joined-ap", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='hostname', extensions=None), is_container='list', yang_name="joined-ap", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='list', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """joined_ap must be of a type compatible with list""",
          'defined-type': "list",
          'generated-type': """YANGDynClass(base=YANGListType("hostname",yc_joined_ap_openconfig_ap_manager__joined_aps_joined_ap, yang_name="joined-ap", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='hostname', extensions=None), is_container='list', yang_name="joined-ap", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='list', is_config=True)""",
        })

    self.__joined_ap = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_joined_ap(self):
    self.__joined_ap = YANGDynClass(base=YANGListType("hostname",yc_joined_ap_openconfig_ap_manager__joined_aps_joined_ap, yang_name="joined-ap", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='hostname', extensions=None), is_container='list', yang_name="joined-ap", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='list', is_config=True)

  joined_ap = __builtin__.property(_get_joined_ap, _set_joined_ap)


  _pyangbind_elements = OrderedDict([('joined_ap', joined_ap), ])


class openconfig_ap_manager(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-ap-manager - based on the path /openconfig-ap-manager. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: This module defines the top level configuration and state data for a
system which manages Access Points.
  """
  __slots__ = ('_path_helper', '_extmethods', '__provision_aps','__joined_aps',)

  _yang_name = 'openconfig-ap-manager'
  _yang_namespace = 'http://openconfig.net/yang/ap-manager'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__provision_aps = YANGDynClass(base=yc_provision_aps_openconfig_ap_manager__provision_aps, is_container='container', yang_name="provision-aps", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='container', is_config=True)
    self.__joined_aps = YANGDynClass(base=yc_joined_aps_openconfig_ap_manager__joined_aps, is_container='container', yang_name="joined-aps", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='container', is_config=True)

    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 []

  def _get_provision_aps(self):
    """
    Getter method for provision_aps, mapped from YANG variable /provision_aps (container)

    YANG Description: Top most container for assigning hostnames to APs.
    """
    return self.__provision_aps
      
  def _set_provision_aps(self, v, load=False):
    """
    Setter method for provision_aps, mapped from YANG variable /provision_aps (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_provision_aps is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_provision_aps() directly.

    YANG Description: Top most container for assigning hostnames to APs.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_provision_aps_openconfig_ap_manager__provision_aps, is_container='container', yang_name="provision-aps", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """provision_aps must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_provision_aps_openconfig_ap_manager__provision_aps, is_container='container', yang_name="provision-aps", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='container', is_config=True)""",
        })

    self.__provision_aps = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_provision_aps(self):
    self.__provision_aps = YANGDynClass(base=yc_provision_aps_openconfig_ap_manager__provision_aps, is_container='container', yang_name="provision-aps", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='container', is_config=True)


  def _get_joined_aps(self):
    """
    Getter method for joined_aps, mapped from YANG variable /joined_aps (container)

    YANG Description: Top most container for joined-aps.
    """
    return self.__joined_aps
      
  def _set_joined_aps(self, v, load=False):
    """
    Setter method for joined_aps, mapped from YANG variable /joined_aps (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_joined_aps is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_joined_aps() directly.

    YANG Description: Top most container for joined-aps.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_joined_aps_openconfig_ap_manager__joined_aps, is_container='container', yang_name="joined-aps", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """joined_aps must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_joined_aps_openconfig_ap_manager__joined_aps, is_container='container', yang_name="joined-aps", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='container', is_config=True)""",
        })

    self.__joined_aps = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_joined_aps(self):
    self.__joined_aps = YANGDynClass(base=yc_joined_aps_openconfig_ap_manager__joined_aps, is_container='container', yang_name="joined-aps", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-manager', defining_module='openconfig-ap-manager', yang_type='container', is_config=True)

  provision_aps = __builtin__.property(_get_provision_aps, _set_provision_aps)
  joined_aps = __builtin__.property(_get_joined_aps, _set_joined_aps)


  _pyangbind_elements = OrderedDict([('provision_aps', provision_aps), ('joined_aps', joined_aps), ])


class yc_config_openconfig_access_points__access_points_access_point_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Config items at the global, Access Point level.
  """
  __slots__ = ('_path_helper', '_extmethods', '__hostname',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__hostname = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="hostname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)

    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 ['access-points', 'access-point', 'config']

  def _get_hostname(self):
    """
    Getter method for hostname, mapped from YANG variable /access_points/access_point/config/hostname (leafref)

    YANG Description: Access Point FQDN.  This leaf is only valid when the type of the
component is WIFI_ACCESS_POINT, and should be used instead of
/oc-sys:system/oc-sys:state/oc-sys:hostname.
    """
    return self.__hostname
      
  def _set_hostname(self, v, load=False):
    """
    Setter method for hostname, mapped from YANG variable /access_points/access_point/config/hostname (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_hostname is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_hostname() directly.

    YANG Description: Access Point FQDN.  This leaf is only valid when the type of the
component is WIFI_ACCESS_POINT, and should be used instead of
/oc-sys:system/oc-sys:state/oc-sys:hostname.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="hostname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """hostname must be of a type compatible with leafref""",
          'defined-type': "leafref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="hostname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)""",
        })

    self.__hostname = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_hostname(self):
    self.__hostname = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="hostname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)

  hostname = __builtin__.property(_get_hostname, _set_hostname)


  _pyangbind_elements = OrderedDict([('hostname', hostname), ])


class yc_state_openconfig_access_points__access_points_access_point_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: State items at the global, Access Point level.
  """
  __slots__ = ('_path_helper', '_extmethods', '__hostname',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__hostname = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="hostname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', 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 ['access-points', 'access-point', 'state']

  def _get_hostname(self):
    """
    Getter method for hostname, mapped from YANG variable /access_points/access_point/state/hostname (leafref)

    YANG Description: Access Point FQDN.  This leaf is only valid when the type of the
component is WIFI_ACCESS_POINT, and should be used instead of
/oc-sys:system/oc-sys:state/oc-sys:hostname.
    """
    return self.__hostname
      
  def _set_hostname(self, v, load=False):
    """
    Setter method for hostname, mapped from YANG variable /access_points/access_point/state/hostname (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_hostname is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_hostname() directly.

    YANG Description: Access Point FQDN.  This leaf is only valid when the type of the
component is WIFI_ACCESS_POINT, and should be used instead of
/oc-sys:system/oc-sys:state/oc-sys:hostname.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="hostname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """hostname must be of a type compatible with leafref""",
          'defined-type': "leafref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="hostname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=False)""",
        })

    self.__hostname = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_hostname(self):
    self.__hostname = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="hostname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=False)

  hostname = __builtin__.property(_get_hostname)


  _pyangbind_elements = OrderedDict([('hostname', hostname), ])


class yc_config_openconfig_access_points__access_points_access_point_radios_radio_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/radios/radio/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Configurable items at the global, radio interface
level.
  """
  __slots__ = ('_path_helper', '_extmethods', '__id','__operating_frequency','__enabled','__transmit_power','__transmit_eirp','__channel','__channel_width','__bss_coloring','__bss_color_id','__dca','__allowed_channels','__dtp','__dtp_min','__dtp_max','__antenna_gain','__scanning','__scanning_interval','__scanning_dwell_time','__scanning_defer_clients','__scanning_defer_traffic',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__id = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=True)
    self.__operating_frequency = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},), is_leaf=True, yang_name="operating-frequency", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=True)
    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)
    self.__transmit_power = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8)(9), is_leaf=True, yang_name="transmit-power", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='int8', is_config=True)
    self.__transmit_eirp = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="transmit-eirp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=True)
    self.__channel = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..233']}), is_leaf=True, yang_name="channel", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=True)
    self.__channel_width = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)(20), is_leaf=True, yang_name="channel-width", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=True)
    self.__bss_coloring = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="bss-coloring", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)
    self.__bss_color_id = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..63']}), is_leaf=True, yang_name="bss-color-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=True)
    self.__dca = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="dca", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)
    self.__allowed_channels = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..14', '17', '21', '25', '29', '33', '36', '37', '40', '41', '44', '45', '48', '49', '52', '53', '56', '57', '60', '61', '64', '65', '69', '73', '77', '81', '85', '89', '93', '97', '100', '101', '104', '105', '108', '109', '112', '113', '116', '117', '120', '121', '124', '125', '128', '129', '132', '133', '136', '137', '140', '141', '144', '145', '149', '153', '157', '161', '165', '169', '173', '177', '181', '185', '189', '193', '197', '201', '205', '209', '213', '217', '221', '225', '229', '233']})), is_leaf=False, yang_name="allowed-channels", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-wifi-types:channels-type', is_config=True)
    self.__dtp = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="dtp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)
    self.__dtp_min = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8)(3), is_leaf=True, yang_name="dtp-min", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='int8', is_config=True)
    self.__dtp_max = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8)(15), is_leaf=True, yang_name="dtp-max", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='int8', is_config=True)
    self.__antenna_gain = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), is_leaf=True, yang_name="antenna-gain", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='int8', is_config=True)
    self.__scanning = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="scanning", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)
    self.__scanning_interval = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="scanning-interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=True)
    self.__scanning_dwell_time = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="scanning-dwell-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=True)
    self.__scanning_defer_clients = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="scanning-defer-clients", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=True)
    self.__scanning_defer_traffic = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="scanning-defer-traffic", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)

    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 ['access-points', 'access-point', 'radios', 'radio', 'config']

  def _get_id(self):
    """
    Getter method for id, mapped from YANG variable /access_points/access_point/radios/radio/config/id (uint8)

    YANG Description: Unique ID of the radio. Each ID has a corresponding
operating-frequency.
    """
    return self.__id
      
  def _set_id(self, v, load=False):
    """
    Setter method for id, mapped from YANG variable /access_points/access_point/radios/radio/config/id (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_id is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_id() directly.

    YANG Description: Unique ID of the radio. Each ID has a corresponding
operating-frequency.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """id must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=True)""",
        })

    self.__id = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_id(self):
    self.__id = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=True)


  def _get_operating_frequency(self):
    """
    Getter method for operating_frequency, mapped from YANG variable /access_points/access_point/radios/radio/config/operating_frequency (identityref)

    YANG Description: Operating frequency of this radio.
    """
    return self.__operating_frequency
      
  def _set_operating_frequency(self, v, load=False):
    """
    Setter method for operating_frequency, mapped from YANG variable /access_points/access_point/radios/radio/config/operating_frequency (identityref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_operating_frequency is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_operating_frequency() directly.

    YANG Description: Operating frequency of this radio.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},), is_leaf=True, yang_name="operating-frequency", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """operating_frequency must be of a type compatible with identityref""",
          'defined-type': "openconfig-access-points:identityref",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},), is_leaf=True, yang_name="operating-frequency", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=True)""",
        })

    self.__operating_frequency = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_operating_frequency(self):
    self.__operating_frequency = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},), is_leaf=True, yang_name="operating-frequency", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=True)


  def _get_enabled(self):
    """
    Getter method for enabled, mapped from YANG variable /access_points/access_point/radios/radio/config/enabled (boolean)

    YANG Description: The configured state (enabled/disabled) of this radio
interface.
    """
    return self.__enabled
      
  def _set_enabled(self, v, load=False):
    """
    Setter method for enabled, mapped from YANG variable /access_points/access_point/radios/radio/config/enabled (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_enabled is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_enabled() directly.

    YANG Description: The configured state (enabled/disabled) of this radio
interface.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """enabled must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)""",
        })

    self.__enabled = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_enabled(self):
    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)


  def _get_transmit_power(self):
    """
    Getter method for transmit_power, mapped from YANG variable /access_points/access_point/radios/radio/config/transmit_power (int8)

    YANG Description: Transmit power of the radio, in dBm.
    """
    return self.__transmit_power
      
  def _set_transmit_power(self, v, load=False):
    """
    Setter method for transmit_power, mapped from YANG variable /access_points/access_point/radios/radio/config/transmit_power (int8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_transmit_power is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_transmit_power() directly.

    YANG Description: Transmit power of the radio, in dBm.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8)(9), is_leaf=True, yang_name="transmit-power", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='int8', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """transmit_power must be of a type compatible with int8""",
          'defined-type': "int8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8)(9), is_leaf=True, yang_name="transmit-power", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='int8', is_config=True)""",
        })

    self.__transmit_power = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_transmit_power(self):
    self.__transmit_power = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8)(9), is_leaf=True, yang_name="transmit-power", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='int8', is_config=True)


  def _get_transmit_eirp(self):
    """
    Getter method for transmit_eirp, mapped from YANG variable /access_points/access_point/radios/radio/config/transmit_eirp (uint8)

    YANG Description: Transmit eirp of the radio + antenna, in dBm.
    """
    return self.__transmit_eirp
      
  def _set_transmit_eirp(self, v, load=False):
    """
    Setter method for transmit_eirp, mapped from YANG variable /access_points/access_point/radios/radio/config/transmit_eirp (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_transmit_eirp is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_transmit_eirp() directly.

    YANG Description: Transmit eirp of the radio + antenna, in dBm.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="transmit-eirp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """transmit_eirp must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="transmit-eirp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=True)""",
        })

    self.__transmit_eirp = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_transmit_eirp(self):
    self.__transmit_eirp = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="transmit-eirp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=True)


  def _get_channel(self):
    """
    Getter method for channel, mapped from YANG variable /access_points/access_point/radios/radio/config/channel (uint8)

    YANG Description: Operating channel of this radio. If using channel-bonding
this will represent the Primary 20MHz channel of the
40,80,160MHz channel.
    """
    return self.__channel
      
  def _set_channel(self, v, load=False):
    """
    Setter method for channel, mapped from YANG variable /access_points/access_point/radios/radio/config/channel (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_channel is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_channel() directly.

    YANG Description: Operating channel of this radio. If using channel-bonding
this will represent the Primary 20MHz channel of the
40,80,160MHz channel.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..233']}), is_leaf=True, yang_name="channel", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """channel must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..233']}), is_leaf=True, yang_name="channel", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=True)""",
        })

    self.__channel = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_channel(self):
    self.__channel = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..233']}), is_leaf=True, yang_name="channel", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=True)


  def _get_channel_width(self):
    """
    Getter method for channel_width, mapped from YANG variable /access_points/access_point/radios/radio/config/channel_width (uint8)

    YANG Description: Operating channel-width of this radio.
    """
    return self.__channel_width
      
  def _set_channel_width(self, v, load=False):
    """
    Setter method for channel_width, mapped from YANG variable /access_points/access_point/radios/radio/config/channel_width (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_channel_width is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_channel_width() directly.

    YANG Description: Operating channel-width of this radio.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)(20), is_leaf=True, yang_name="channel-width", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """channel_width must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)(20), is_leaf=True, yang_name="channel-width", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=True)""",
        })

    self.__channel_width = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_channel_width(self):
    self.__channel_width = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)(20), is_leaf=True, yang_name="channel-width", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=True)


  def _get_bss_coloring(self):
    """
    Getter method for bss_coloring, mapped from YANG variable /access_points/access_point/radios/radio/config/bss_coloring (boolean)

    YANG Description: Utilize BSS coloring on this radio.
    """
    return self.__bss_coloring
      
  def _set_bss_coloring(self, v, load=False):
    """
    Setter method for bss_coloring, mapped from YANG variable /access_points/access_point/radios/radio/config/bss_coloring (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_bss_coloring is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_bss_coloring() directly.

    YANG Description: Utilize BSS coloring on this radio.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="bss-coloring", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """bss_coloring must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="bss-coloring", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)""",
        })

    self.__bss_coloring = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_bss_coloring(self):
    self.__bss_coloring = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="bss-coloring", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)


  def _get_bss_color_id(self):
    """
    Getter method for bss_color_id, mapped from YANG variable /access_points/access_point/radios/radio/config/bss_color_id (uint8)

    YANG Description: Numerical identifier of the BSS.
    """
    return self.__bss_color_id
      
  def _set_bss_color_id(self, v, load=False):
    """
    Setter method for bss_color_id, mapped from YANG variable /access_points/access_point/radios/radio/config/bss_color_id (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_bss_color_id is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_bss_color_id() directly.

    YANG Description: Numerical identifier of the BSS.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..63']}), is_leaf=True, yang_name="bss-color-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """bss_color_id must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..63']}), is_leaf=True, yang_name="bss-color-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=True)""",
        })

    self.__bss_color_id = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_bss_color_id(self):
    self.__bss_color_id = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..63']}), is_leaf=True, yang_name="bss-color-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=True)


  def _get_dca(self):
    """
    Getter method for dca, mapped from YANG variable /access_points/access_point/radios/radio/config/dca (boolean)

    YANG Description: Utilize Dynamic Channel Assignment on this Radio.
    """
    return self.__dca
      
  def _set_dca(self, v, load=False):
    """
    Setter method for dca, mapped from YANG variable /access_points/access_point/radios/radio/config/dca (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dca is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dca() directly.

    YANG Description: Utilize Dynamic Channel Assignment on this Radio.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="dca", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dca must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="dca", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)""",
        })

    self.__dca = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dca(self):
    self.__dca = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="dca", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)


  def _get_allowed_channels(self):
    """
    Getter method for allowed_channels, mapped from YANG variable /access_points/access_point/radios/radio/config/allowed_channels (oc-wifi-types:channels-type)

    YANG Description: Allowed channel list for this Radio to utilize.
    """
    return self.__allowed_channels
      
  def _set_allowed_channels(self, v, load=False):
    """
    Setter method for allowed_channels, mapped from YANG variable /access_points/access_point/radios/radio/config/allowed_channels (oc-wifi-types:channels-type)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_allowed_channels is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_allowed_channels() directly.

    YANG Description: Allowed channel list for this Radio to utilize.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..14', '17', '21', '25', '29', '33', '36', '37', '40', '41', '44', '45', '48', '49', '52', '53', '56', '57', '60', '61', '64', '65', '69', '73', '77', '81', '85', '89', '93', '97', '100', '101', '104', '105', '108', '109', '112', '113', '116', '117', '120', '121', '124', '125', '128', '129', '132', '133', '136', '137', '140', '141', '144', '145', '149', '153', '157', '161', '165', '169', '173', '177', '181', '185', '189', '193', '197', '201', '205', '209', '213', '217', '221', '225', '229', '233']})), is_leaf=False, yang_name="allowed-channels", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-wifi-types:channels-type', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """allowed_channels must be of a type compatible with oc-wifi-types:channels-type""",
          'defined-type': "oc-wifi-types:channels-type",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..14', '17', '21', '25', '29', '33', '36', '37', '40', '41', '44', '45', '48', '49', '52', '53', '56', '57', '60', '61', '64', '65', '69', '73', '77', '81', '85', '89', '93', '97', '100', '101', '104', '105', '108', '109', '112', '113', '116', '117', '120', '121', '124', '125', '128', '129', '132', '133', '136', '137', '140', '141', '144', '145', '149', '153', '157', '161', '165', '169', '173', '177', '181', '185', '189', '193', '197', '201', '205', '209', '213', '217', '221', '225', '229', '233']})), is_leaf=False, yang_name="allowed-channels", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-wifi-types:channels-type', is_config=True)""",
        })

    self.__allowed_channels = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_allowed_channels(self):
    self.__allowed_channels = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..14', '17', '21', '25', '29', '33', '36', '37', '40', '41', '44', '45', '48', '49', '52', '53', '56', '57', '60', '61', '64', '65', '69', '73', '77', '81', '85', '89', '93', '97', '100', '101', '104', '105', '108', '109', '112', '113', '116', '117', '120', '121', '124', '125', '128', '129', '132', '133', '136', '137', '140', '141', '144', '145', '149', '153', '157', '161', '165', '169', '173', '177', '181', '185', '189', '193', '197', '201', '205', '209', '213', '217', '221', '225', '229', '233']})), is_leaf=False, yang_name="allowed-channels", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-wifi-types:channels-type', is_config=True)


  def _get_dtp(self):
    """
    Getter method for dtp, mapped from YANG variable /access_points/access_point/radios/radio/config/dtp (boolean)

    YANG Description: Utilize dynamic transmit-power on this Radio.
    """
    return self.__dtp
      
  def _set_dtp(self, v, load=False):
    """
    Setter method for dtp, mapped from YANG variable /access_points/access_point/radios/radio/config/dtp (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dtp is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dtp() directly.

    YANG Description: Utilize dynamic transmit-power on this Radio.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="dtp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dtp must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="dtp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)""",
        })

    self.__dtp = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dtp(self):
    self.__dtp = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="dtp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)


  def _get_dtp_min(self):
    """
    Getter method for dtp_min, mapped from YANG variable /access_points/access_point/radios/radio/config/dtp_min (int8)

    YANG Description: Minimum allowed transmit-power on this radio, if utilizing
dtp. Expressed in dBm.
    """
    return self.__dtp_min
      
  def _set_dtp_min(self, v, load=False):
    """
    Setter method for dtp_min, mapped from YANG variable /access_points/access_point/radios/radio/config/dtp_min (int8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dtp_min is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dtp_min() directly.

    YANG Description: Minimum allowed transmit-power on this radio, if utilizing
dtp. Expressed in dBm.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8)(3), is_leaf=True, yang_name="dtp-min", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='int8', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dtp_min must be of a type compatible with int8""",
          'defined-type': "int8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8)(3), is_leaf=True, yang_name="dtp-min", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='int8', is_config=True)""",
        })

    self.__dtp_min = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dtp_min(self):
    self.__dtp_min = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8)(3), is_leaf=True, yang_name="dtp-min", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='int8', is_config=True)


  def _get_dtp_max(self):
    """
    Getter method for dtp_max, mapped from YANG variable /access_points/access_point/radios/radio/config/dtp_max (int8)

    YANG Description: Maximum allowed transmit-power on this radio, if utilizing
dtp. Expressed in dBm.
    """
    return self.__dtp_max
      
  def _set_dtp_max(self, v, load=False):
    """
    Setter method for dtp_max, mapped from YANG variable /access_points/access_point/radios/radio/config/dtp_max (int8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dtp_max is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dtp_max() directly.

    YANG Description: Maximum allowed transmit-power on this radio, if utilizing
dtp. Expressed in dBm.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8)(15), is_leaf=True, yang_name="dtp-max", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='int8', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dtp_max must be of a type compatible with int8""",
          'defined-type': "int8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8)(15), is_leaf=True, yang_name="dtp-max", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='int8', is_config=True)""",
        })

    self.__dtp_max = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dtp_max(self):
    self.__dtp_max = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8)(15), is_leaf=True, yang_name="dtp-max", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='int8', is_config=True)


  def _get_antenna_gain(self):
    """
    Getter method for antenna_gain, mapped from YANG variable /access_points/access_point/radios/radio/config/antenna_gain (int8)

    YANG Description: Antenna gain applied to this Radio; typically used when
external antennae connected.
    """
    return self.__antenna_gain
      
  def _set_antenna_gain(self, v, load=False):
    """
    Setter method for antenna_gain, mapped from YANG variable /access_points/access_point/radios/radio/config/antenna_gain (int8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_antenna_gain is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_antenna_gain() directly.

    YANG Description: Antenna gain applied to this Radio; typically used when
external antennae connected.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), is_leaf=True, yang_name="antenna-gain", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='int8', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """antenna_gain must be of a type compatible with int8""",
          'defined-type': "int8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), is_leaf=True, yang_name="antenna-gain", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='int8', is_config=True)""",
        })

    self.__antenna_gain = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_antenna_gain(self):
    self.__antenna_gain = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), is_leaf=True, yang_name="antenna-gain", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='int8', is_config=True)


  def _get_scanning(self):
    """
    Getter method for scanning, mapped from YANG variable /access_points/access_point/radios/radio/config/scanning (boolean)

    YANG Description: Whether the radio will perform off-channel scanning, to
collect neighboring RF information.
    """
    return self.__scanning
      
  def _set_scanning(self, v, load=False):
    """
    Setter method for scanning, mapped from YANG variable /access_points/access_point/radios/radio/config/scanning (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_scanning is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_scanning() directly.

    YANG Description: Whether the radio will perform off-channel scanning, to
collect neighboring RF information.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="scanning", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """scanning must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="scanning", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)""",
        })

    self.__scanning = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_scanning(self):
    self.__scanning = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="scanning", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)


  def _get_scanning_interval(self):
    """
    Getter method for scanning_interval, mapped from YANG variable /access_points/access_point/radios/radio/config/scanning_interval (uint8)

    YANG Description: How often, in seconds, the radio will go off-channel to
perform scanning.
    """
    return self.__scanning_interval
      
  def _set_scanning_interval(self, v, load=False):
    """
    Setter method for scanning_interval, mapped from YANG variable /access_points/access_point/radios/radio/config/scanning_interval (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_scanning_interval is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_scanning_interval() directly.

    YANG Description: How often, in seconds, the radio will go off-channel to
perform scanning.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="scanning-interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """scanning_interval must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="scanning-interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=True)""",
        })

    self.__scanning_interval = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_scanning_interval(self):
    self.__scanning_interval = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="scanning-interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=True)


  def _get_scanning_dwell_time(self):
    """
    Getter method for scanning_dwell_time, mapped from YANG variable /access_points/access_point/radios/radio/config/scanning_dwell_time (uint16)

    YANG Description: Amount of time, in milliseconds, the radio will spend on a
channel during scanning-interval. If a Monitor-mode Radio, it
will cycle through scanning-allowed-channels spending this
amount of time on each.
    """
    return self.__scanning_dwell_time
      
  def _set_scanning_dwell_time(self, v, load=False):
    """
    Setter method for scanning_dwell_time, mapped from YANG variable /access_points/access_point/radios/radio/config/scanning_dwell_time (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_scanning_dwell_time is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_scanning_dwell_time() directly.

    YANG Description: Amount of time, in milliseconds, the radio will spend on a
channel during scanning-interval. If a Monitor-mode Radio, it
will cycle through scanning-allowed-channels spending this
amount of time on each.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="scanning-dwell-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """scanning_dwell_time must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="scanning-dwell-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=True)""",
        })

    self.__scanning_dwell_time = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_scanning_dwell_time(self):
    self.__scanning_dwell_time = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="scanning-dwell-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=True)


  def _get_scanning_defer_clients(self):
    """
    Getter method for scanning_defer_clients, mapped from YANG variable /access_points/access_point/radios/radio/config/scanning_defer_clients (uint8)

    YANG Description: Sets the number of associated stations after which the radio
should not perform scanning.
    """
    return self.__scanning_defer_clients
      
  def _set_scanning_defer_clients(self, v, load=False):
    """
    Setter method for scanning_defer_clients, mapped from YANG variable /access_points/access_point/radios/radio/config/scanning_defer_clients (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_scanning_defer_clients is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_scanning_defer_clients() directly.

    YANG Description: Sets the number of associated stations after which the radio
should not perform scanning.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="scanning-defer-clients", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """scanning_defer_clients must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="scanning-defer-clients", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=True)""",
        })

    self.__scanning_defer_clients = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_scanning_defer_clients(self):
    self.__scanning_defer_clients = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="scanning-defer-clients", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=True)


  def _get_scanning_defer_traffic(self):
    """
    Getter method for scanning_defer_traffic, mapped from YANG variable /access_points/access_point/radios/radio/config/scanning_defer_traffic (boolean)

    YANG Description: Do not perform scanning if any traffic received from an
active Station in the past 100ms marked as AC_VO or AC_VI.
    """
    return self.__scanning_defer_traffic
      
  def _set_scanning_defer_traffic(self, v, load=False):
    """
    Setter method for scanning_defer_traffic, mapped from YANG variable /access_points/access_point/radios/radio/config/scanning_defer_traffic (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_scanning_defer_traffic is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_scanning_defer_traffic() directly.

    YANG Description: Do not perform scanning if any traffic received from an
active Station in the past 100ms marked as AC_VO or AC_VI.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="scanning-defer-traffic", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """scanning_defer_traffic must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="scanning-defer-traffic", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)""",
        })

    self.__scanning_defer_traffic = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_scanning_defer_traffic(self):
    self.__scanning_defer_traffic = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="scanning-defer-traffic", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)

  id = __builtin__.property(_get_id, _set_id)
  operating_frequency = __builtin__.property(_get_operating_frequency, _set_operating_frequency)
  enabled = __builtin__.property(_get_enabled, _set_enabled)
  transmit_power = __builtin__.property(_get_transmit_power, _set_transmit_power)
  transmit_eirp = __builtin__.property(_get_transmit_eirp, _set_transmit_eirp)
  channel = __builtin__.property(_get_channel, _set_channel)
  channel_width = __builtin__.property(_get_channel_width, _set_channel_width)
  bss_coloring = __builtin__.property(_get_bss_coloring, _set_bss_coloring)
  bss_color_id = __builtin__.property(_get_bss_color_id, _set_bss_color_id)
  dca = __builtin__.property(_get_dca, _set_dca)
  allowed_channels = __builtin__.property(_get_allowed_channels, _set_allowed_channels)
  dtp = __builtin__.property(_get_dtp, _set_dtp)
  dtp_min = __builtin__.property(_get_dtp_min, _set_dtp_min)
  dtp_max = __builtin__.property(_get_dtp_max, _set_dtp_max)
  antenna_gain = __builtin__.property(_get_antenna_gain, _set_antenna_gain)
  scanning = __builtin__.property(_get_scanning, _set_scanning)
  scanning_interval = __builtin__.property(_get_scanning_interval, _set_scanning_interval)
  scanning_dwell_time = __builtin__.property(_get_scanning_dwell_time, _set_scanning_dwell_time)
  scanning_defer_clients = __builtin__.property(_get_scanning_defer_clients, _set_scanning_defer_clients)
  scanning_defer_traffic = __builtin__.property(_get_scanning_defer_traffic, _set_scanning_defer_traffic)


  _pyangbind_elements = OrderedDict([('id', id), ('operating_frequency', operating_frequency), ('enabled', enabled), ('transmit_power', transmit_power), ('transmit_eirp', transmit_eirp), ('channel', channel), ('channel_width', channel_width), ('bss_coloring', bss_coloring), ('bss_color_id', bss_color_id), ('dca', dca), ('allowed_channels', allowed_channels), ('dtp', dtp), ('dtp_min', dtp_min), ('dtp_max', dtp_max), ('antenna_gain', antenna_gain), ('scanning', scanning), ('scanning_interval', scanning_interval), ('scanning_dwell_time', scanning_dwell_time), ('scanning_defer_clients', scanning_defer_clients), ('scanning_defer_traffic', scanning_defer_traffic), ])


class yc_counters_openconfig_access_points__access_points_access_point_radios_radio_state_counters(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/radios/radio/state/counters. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: A collection of radio-related statistics objects.
  """
  __slots__ = ('_path_helper', '_extmethods', '__failed_fcs_frames','__noise_floor',)

  _yang_name = 'counters'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__failed_fcs_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="failed-fcs-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__noise_floor = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), is_leaf=True, yang_name="noise-floor", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='int8', 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 ['access-points', 'access-point', 'radios', 'radio', 'state', 'counters']

  def _get_failed_fcs_frames(self):
    """
    Getter method for failed_fcs_frames, mapped from YANG variable /access_points/access_point/radios/radio/state/counters/failed_fcs_frames (oc-yang:counter64)

    YANG Description: Number of frames that failed the FCS.
    """
    return self.__failed_fcs_frames
      
  def _set_failed_fcs_frames(self, v, load=False):
    """
    Setter method for failed_fcs_frames, mapped from YANG variable /access_points/access_point/radios/radio/state/counters/failed_fcs_frames (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_failed_fcs_frames is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_failed_fcs_frames() directly.

    YANG Description: Number of frames that failed the FCS.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="failed-fcs-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """failed_fcs_frames must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="failed-fcs-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__failed_fcs_frames = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_failed_fcs_frames(self):
    self.__failed_fcs_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="failed-fcs-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_noise_floor(self):
    """
    Getter method for noise_floor, mapped from YANG variable /access_points/access_point/radios/radio/state/counters/noise_floor (int8)

    YANG Description: Noise Floor, as measured by this radio.
    """
    return self.__noise_floor
      
  def _set_noise_floor(self, v, load=False):
    """
    Setter method for noise_floor, mapped from YANG variable /access_points/access_point/radios/radio/state/counters/noise_floor (int8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_noise_floor is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_noise_floor() directly.

    YANG Description: Noise Floor, as measured by this radio.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), is_leaf=True, yang_name="noise-floor", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='int8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """noise_floor must be of a type compatible with int8""",
          'defined-type': "int8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), is_leaf=True, yang_name="noise-floor", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='int8', is_config=False)""",
        })

    self.__noise_floor = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_noise_floor(self):
    self.__noise_floor = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), is_leaf=True, yang_name="noise-floor", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='int8', is_config=False)

  failed_fcs_frames = __builtin__.property(_get_failed_fcs_frames)
  noise_floor = __builtin__.property(_get_noise_floor)


  _pyangbind_elements = OrderedDict([('failed_fcs_frames', failed_fcs_frames), ('noise_floor', noise_floor), ])


class yc_state_openconfig_access_points__access_points_access_point_radios_radio_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/radios/radio/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Operational state data at the global radio level.
  """
  __slots__ = ('_path_helper', '_extmethods', '__id','__operating_frequency','__enabled','__transmit_power','__transmit_eirp','__channel','__channel_width','__bss_coloring','__bss_color_id','__dca','__allowed_channels','__dtp','__dtp_min','__dtp_max','__antenna_gain','__scanning','__scanning_interval','__scanning_dwell_time','__scanning_defer_clients','__scanning_defer_traffic','__base_radio_mac','__allowed_regulatory_channels','__software_selectable','__dfs_hit_time','__supported_channels','__channel_change_reason','__total_channel_utilization','__rx_dot11_channel_utilization','__rx_noise_channel_utilization','__tx_dot11_channel_utilization','__obss_rx','__counters',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__id = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)
    self.__operating_frequency = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},), is_leaf=True, yang_name="operating-frequency", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)
    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    self.__transmit_power = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8)(9), is_leaf=True, yang_name="transmit-power", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='int8', is_config=False)
    self.__transmit_eirp = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="transmit-eirp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)
    self.__channel = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..233']}), is_leaf=True, yang_name="channel", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)
    self.__channel_width = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)(20), is_leaf=True, yang_name="channel-width", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)
    self.__bss_coloring = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="bss-coloring", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    self.__bss_color_id = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..63']}), is_leaf=True, yang_name="bss-color-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)
    self.__dca = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="dca", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    self.__allowed_channels = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..14', '17', '21', '25', '29', '33', '36', '37', '40', '41', '44', '45', '48', '49', '52', '53', '56', '57', '60', '61', '64', '65', '69', '73', '77', '81', '85', '89', '93', '97', '100', '101', '104', '105', '108', '109', '112', '113', '116', '117', '120', '121', '124', '125', '128', '129', '132', '133', '136', '137', '140', '141', '144', '145', '149', '153', '157', '161', '165', '169', '173', '177', '181', '185', '189', '193', '197', '201', '205', '209', '213', '217', '221', '225', '229', '233']})), is_leaf=False, yang_name="allowed-channels", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-wifi-types:channels-type', is_config=False)
    self.__dtp = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="dtp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    self.__dtp_min = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8)(3), is_leaf=True, yang_name="dtp-min", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='int8', is_config=False)
    self.__dtp_max = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8)(15), is_leaf=True, yang_name="dtp-max", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='int8', is_config=False)
    self.__antenna_gain = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), is_leaf=True, yang_name="antenna-gain", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='int8', is_config=False)
    self.__scanning = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="scanning", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    self.__scanning_interval = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="scanning-interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)
    self.__scanning_dwell_time = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="scanning-dwell-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)
    self.__scanning_defer_clients = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="scanning-defer-clients", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)
    self.__scanning_defer_traffic = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="scanning-defer-traffic", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    self.__base_radio_mac = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="base-radio-mac", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:mac-address', is_config=False)
    self.__allowed_regulatory_channels = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..14', '17', '21', '25', '29', '33', '36', '37', '40', '41', '44', '45', '48', '49', '52', '53', '56', '57', '60', '61', '64', '65', '69', '73', '77', '81', '85', '89', '93', '97', '100', '101', '104', '105', '108', '109', '112', '113', '116', '117', '120', '121', '124', '125', '128', '129', '132', '133', '136', '137', '140', '141', '144', '145', '149', '153', '157', '161', '165', '169', '173', '177', '181', '185', '189', '193', '197', '201', '205', '209', '213', '217', '221', '225', '229', '233']})), is_leaf=False, yang_name="allowed-regulatory-channels", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-wifi-types:channels-type', is_config=False)
    self.__software_selectable = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="software-selectable", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    self.__dfs_hit_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="dfs-hit-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)
    self.__supported_channels = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..14', '17', '21', '25', '29', '33', '36', '37', '40', '41', '44', '45', '48', '49', '52', '53', '56', '57', '60', '61', '64', '65', '69', '73', '77', '81', '85', '89', '93', '97', '100', '101', '104', '105', '108', '109', '112', '113', '116', '117', '120', '121', '124', '125', '128', '129', '132', '133', '136', '137', '140', '141', '144', '145', '149', '153', '157', '161', '165', '169', '173', '177', '181', '185', '189', '193', '197', '201', '205', '209', '213', '217', '221', '225', '229', '233']})), is_leaf=False, yang_name="supported-channels", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-wifi-types:channels-type', is_config=False)
    self.__channel_change_reason = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'DFS': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:DFS': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:DFS': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'NOISE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:NOISE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:NOISE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'ERRORS': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:ERRORS': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:ERRORS': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'BETTER_CHANNEL': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:BETTER_CHANNEL': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:BETTER_CHANNEL': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},), is_leaf=True, yang_name="channel-change-reason", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)
    self.__total_channel_utilization = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="total-channel-utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    self.__rx_dot11_channel_utilization = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="rx-dot11-channel-utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    self.__rx_noise_channel_utilization = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="rx-noise-channel-utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    self.__tx_dot11_channel_utilization = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="tx-dot11-channel-utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    self.__obss_rx = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="obss-rx", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    self.__counters = YANGDynClass(base=yc_counters_openconfig_access_points__access_points_access_point_radios_radio_state_counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', 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 ['access-points', 'access-point', 'radios', 'radio', 'state']

  def _get_id(self):
    """
    Getter method for id, mapped from YANG variable /access_points/access_point/radios/radio/state/id (uint8)

    YANG Description: Unique ID of the radio. Each ID has a corresponding
operating-frequency.
    """
    return self.__id
      
  def _set_id(self, v, load=False):
    """
    Setter method for id, mapped from YANG variable /access_points/access_point/radios/radio/state/id (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_id is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_id() directly.

    YANG Description: Unique ID of the radio. Each ID has a corresponding
operating-frequency.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """id must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)""",
        })

    self.__id = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_id(self):
    self.__id = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)


  def _get_operating_frequency(self):
    """
    Getter method for operating_frequency, mapped from YANG variable /access_points/access_point/radios/radio/state/operating_frequency (identityref)

    YANG Description: Operating frequency of this radio.
    """
    return self.__operating_frequency
      
  def _set_operating_frequency(self, v, load=False):
    """
    Setter method for operating_frequency, mapped from YANG variable /access_points/access_point/radios/radio/state/operating_frequency (identityref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_operating_frequency is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_operating_frequency() directly.

    YANG Description: Operating frequency of this radio.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},), is_leaf=True, yang_name="operating-frequency", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """operating_frequency must be of a type compatible with identityref""",
          'defined-type': "openconfig-access-points:identityref",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},), is_leaf=True, yang_name="operating-frequency", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)""",
        })

    self.__operating_frequency = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_operating_frequency(self):
    self.__operating_frequency = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},), is_leaf=True, yang_name="operating-frequency", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)


  def _get_enabled(self):
    """
    Getter method for enabled, mapped from YANG variable /access_points/access_point/radios/radio/state/enabled (boolean)

    YANG Description: The configured state (enabled/disabled) of this radio
interface.
    """
    return self.__enabled
      
  def _set_enabled(self, v, load=False):
    """
    Setter method for enabled, mapped from YANG variable /access_points/access_point/radios/radio/state/enabled (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_enabled is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_enabled() directly.

    YANG Description: The configured state (enabled/disabled) of this radio
interface.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """enabled must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)""",
        })

    self.__enabled = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_enabled(self):
    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)


  def _get_transmit_power(self):
    """
    Getter method for transmit_power, mapped from YANG variable /access_points/access_point/radios/radio/state/transmit_power (int8)

    YANG Description: Transmit power of the radio, in dBm.
    """
    return self.__transmit_power
      
  def _set_transmit_power(self, v, load=False):
    """
    Setter method for transmit_power, mapped from YANG variable /access_points/access_point/radios/radio/state/transmit_power (int8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_transmit_power is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_transmit_power() directly.

    YANG Description: Transmit power of the radio, in dBm.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8)(9), is_leaf=True, yang_name="transmit-power", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='int8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """transmit_power must be of a type compatible with int8""",
          'defined-type': "int8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8)(9), is_leaf=True, yang_name="transmit-power", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='int8', is_config=False)""",
        })

    self.__transmit_power = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_transmit_power(self):
    self.__transmit_power = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8)(9), is_leaf=True, yang_name="transmit-power", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='int8', is_config=False)


  def _get_transmit_eirp(self):
    """
    Getter method for transmit_eirp, mapped from YANG variable /access_points/access_point/radios/radio/state/transmit_eirp (uint8)

    YANG Description: Transmit eirp of the radio + antenna, in dBm.
    """
    return self.__transmit_eirp
      
  def _set_transmit_eirp(self, v, load=False):
    """
    Setter method for transmit_eirp, mapped from YANG variable /access_points/access_point/radios/radio/state/transmit_eirp (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_transmit_eirp is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_transmit_eirp() directly.

    YANG Description: Transmit eirp of the radio + antenna, in dBm.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="transmit-eirp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """transmit_eirp must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="transmit-eirp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)""",
        })

    self.__transmit_eirp = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_transmit_eirp(self):
    self.__transmit_eirp = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="transmit-eirp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)


  def _get_channel(self):
    """
    Getter method for channel, mapped from YANG variable /access_points/access_point/radios/radio/state/channel (uint8)

    YANG Description: Operating channel of this radio. If using channel-bonding
this will represent the Primary 20MHz channel of the
40,80,160MHz channel.
    """
    return self.__channel
      
  def _set_channel(self, v, load=False):
    """
    Setter method for channel, mapped from YANG variable /access_points/access_point/radios/radio/state/channel (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_channel is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_channel() directly.

    YANG Description: Operating channel of this radio. If using channel-bonding
this will represent the Primary 20MHz channel of the
40,80,160MHz channel.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..233']}), is_leaf=True, yang_name="channel", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """channel must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..233']}), is_leaf=True, yang_name="channel", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)""",
        })

    self.__channel = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_channel(self):
    self.__channel = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..233']}), is_leaf=True, yang_name="channel", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)


  def _get_channel_width(self):
    """
    Getter method for channel_width, mapped from YANG variable /access_points/access_point/radios/radio/state/channel_width (uint8)

    YANG Description: Operating channel-width of this radio.
    """
    return self.__channel_width
      
  def _set_channel_width(self, v, load=False):
    """
    Setter method for channel_width, mapped from YANG variable /access_points/access_point/radios/radio/state/channel_width (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_channel_width is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_channel_width() directly.

    YANG Description: Operating channel-width of this radio.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)(20), is_leaf=True, yang_name="channel-width", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """channel_width must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)(20), is_leaf=True, yang_name="channel-width", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)""",
        })

    self.__channel_width = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_channel_width(self):
    self.__channel_width = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)(20), is_leaf=True, yang_name="channel-width", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)


  def _get_bss_coloring(self):
    """
    Getter method for bss_coloring, mapped from YANG variable /access_points/access_point/radios/radio/state/bss_coloring (boolean)

    YANG Description: Utilize BSS coloring on this radio.
    """
    return self.__bss_coloring
      
  def _set_bss_coloring(self, v, load=False):
    """
    Setter method for bss_coloring, mapped from YANG variable /access_points/access_point/radios/radio/state/bss_coloring (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_bss_coloring is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_bss_coloring() directly.

    YANG Description: Utilize BSS coloring on this radio.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="bss-coloring", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """bss_coloring must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="bss-coloring", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)""",
        })

    self.__bss_coloring = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_bss_coloring(self):
    self.__bss_coloring = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="bss-coloring", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)


  def _get_bss_color_id(self):
    """
    Getter method for bss_color_id, mapped from YANG variable /access_points/access_point/radios/radio/state/bss_color_id (uint8)

    YANG Description: Numerical identifier of the BSS.
    """
    return self.__bss_color_id
      
  def _set_bss_color_id(self, v, load=False):
    """
    Setter method for bss_color_id, mapped from YANG variable /access_points/access_point/radios/radio/state/bss_color_id (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_bss_color_id is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_bss_color_id() directly.

    YANG Description: Numerical identifier of the BSS.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..63']}), is_leaf=True, yang_name="bss-color-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """bss_color_id must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..63']}), is_leaf=True, yang_name="bss-color-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)""",
        })

    self.__bss_color_id = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_bss_color_id(self):
    self.__bss_color_id = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..63']}), is_leaf=True, yang_name="bss-color-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)


  def _get_dca(self):
    """
    Getter method for dca, mapped from YANG variable /access_points/access_point/radios/radio/state/dca (boolean)

    YANG Description: Utilize Dynamic Channel Assignment on this Radio.
    """
    return self.__dca
      
  def _set_dca(self, v, load=False):
    """
    Setter method for dca, mapped from YANG variable /access_points/access_point/radios/radio/state/dca (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dca is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dca() directly.

    YANG Description: Utilize Dynamic Channel Assignment on this Radio.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="dca", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dca must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="dca", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)""",
        })

    self.__dca = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dca(self):
    self.__dca = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="dca", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)


  def _get_allowed_channels(self):
    """
    Getter method for allowed_channels, mapped from YANG variable /access_points/access_point/radios/radio/state/allowed_channels (oc-wifi-types:channels-type)

    YANG Description: Allowed channel list for this Radio to utilize.
    """
    return self.__allowed_channels
      
  def _set_allowed_channels(self, v, load=False):
    """
    Setter method for allowed_channels, mapped from YANG variable /access_points/access_point/radios/radio/state/allowed_channels (oc-wifi-types:channels-type)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_allowed_channels is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_allowed_channels() directly.

    YANG Description: Allowed channel list for this Radio to utilize.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..14', '17', '21', '25', '29', '33', '36', '37', '40', '41', '44', '45', '48', '49', '52', '53', '56', '57', '60', '61', '64', '65', '69', '73', '77', '81', '85', '89', '93', '97', '100', '101', '104', '105', '108', '109', '112', '113', '116', '117', '120', '121', '124', '125', '128', '129', '132', '133', '136', '137', '140', '141', '144', '145', '149', '153', '157', '161', '165', '169', '173', '177', '181', '185', '189', '193', '197', '201', '205', '209', '213', '217', '221', '225', '229', '233']})), is_leaf=False, yang_name="allowed-channels", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-wifi-types:channels-type', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """allowed_channels must be of a type compatible with oc-wifi-types:channels-type""",
          'defined-type': "oc-wifi-types:channels-type",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..14', '17', '21', '25', '29', '33', '36', '37', '40', '41', '44', '45', '48', '49', '52', '53', '56', '57', '60', '61', '64', '65', '69', '73', '77', '81', '85', '89', '93', '97', '100', '101', '104', '105', '108', '109', '112', '113', '116', '117', '120', '121', '124', '125', '128', '129', '132', '133', '136', '137', '140', '141', '144', '145', '149', '153', '157', '161', '165', '169', '173', '177', '181', '185', '189', '193', '197', '201', '205', '209', '213', '217', '221', '225', '229', '233']})), is_leaf=False, yang_name="allowed-channels", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-wifi-types:channels-type', is_config=False)""",
        })

    self.__allowed_channels = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_allowed_channels(self):
    self.__allowed_channels = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..14', '17', '21', '25', '29', '33', '36', '37', '40', '41', '44', '45', '48', '49', '52', '53', '56', '57', '60', '61', '64', '65', '69', '73', '77', '81', '85', '89', '93', '97', '100', '101', '104', '105', '108', '109', '112', '113', '116', '117', '120', '121', '124', '125', '128', '129', '132', '133', '136', '137', '140', '141', '144', '145', '149', '153', '157', '161', '165', '169', '173', '177', '181', '185', '189', '193', '197', '201', '205', '209', '213', '217', '221', '225', '229', '233']})), is_leaf=False, yang_name="allowed-channels", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-wifi-types:channels-type', is_config=False)


  def _get_dtp(self):
    """
    Getter method for dtp, mapped from YANG variable /access_points/access_point/radios/radio/state/dtp (boolean)

    YANG Description: Utilize dynamic transmit-power on this Radio.
    """
    return self.__dtp
      
  def _set_dtp(self, v, load=False):
    """
    Setter method for dtp, mapped from YANG variable /access_points/access_point/radios/radio/state/dtp (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dtp is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dtp() directly.

    YANG Description: Utilize dynamic transmit-power on this Radio.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="dtp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dtp must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="dtp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)""",
        })

    self.__dtp = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dtp(self):
    self.__dtp = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="dtp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)


  def _get_dtp_min(self):
    """
    Getter method for dtp_min, mapped from YANG variable /access_points/access_point/radios/radio/state/dtp_min (int8)

    YANG Description: Minimum allowed transmit-power on this radio, if utilizing
dtp. Expressed in dBm.
    """
    return self.__dtp_min
      
  def _set_dtp_min(self, v, load=False):
    """
    Setter method for dtp_min, mapped from YANG variable /access_points/access_point/radios/radio/state/dtp_min (int8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dtp_min is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dtp_min() directly.

    YANG Description: Minimum allowed transmit-power on this radio, if utilizing
dtp. Expressed in dBm.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8)(3), is_leaf=True, yang_name="dtp-min", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='int8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dtp_min must be of a type compatible with int8""",
          'defined-type': "int8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8)(3), is_leaf=True, yang_name="dtp-min", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='int8', is_config=False)""",
        })

    self.__dtp_min = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dtp_min(self):
    self.__dtp_min = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8)(3), is_leaf=True, yang_name="dtp-min", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='int8', is_config=False)


  def _get_dtp_max(self):
    """
    Getter method for dtp_max, mapped from YANG variable /access_points/access_point/radios/radio/state/dtp_max (int8)

    YANG Description: Maximum allowed transmit-power on this radio, if utilizing
dtp. Expressed in dBm.
    """
    return self.__dtp_max
      
  def _set_dtp_max(self, v, load=False):
    """
    Setter method for dtp_max, mapped from YANG variable /access_points/access_point/radios/radio/state/dtp_max (int8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dtp_max is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dtp_max() directly.

    YANG Description: Maximum allowed transmit-power on this radio, if utilizing
dtp. Expressed in dBm.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8)(15), is_leaf=True, yang_name="dtp-max", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='int8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dtp_max must be of a type compatible with int8""",
          'defined-type': "int8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8)(15), is_leaf=True, yang_name="dtp-max", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='int8', is_config=False)""",
        })

    self.__dtp_max = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dtp_max(self):
    self.__dtp_max = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8)(15), is_leaf=True, yang_name="dtp-max", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='int8', is_config=False)


  def _get_antenna_gain(self):
    """
    Getter method for antenna_gain, mapped from YANG variable /access_points/access_point/radios/radio/state/antenna_gain (int8)

    YANG Description: Antenna gain applied to this Radio; typically used when
external antennae connected.
    """
    return self.__antenna_gain
      
  def _set_antenna_gain(self, v, load=False):
    """
    Setter method for antenna_gain, mapped from YANG variable /access_points/access_point/radios/radio/state/antenna_gain (int8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_antenna_gain is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_antenna_gain() directly.

    YANG Description: Antenna gain applied to this Radio; typically used when
external antennae connected.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), is_leaf=True, yang_name="antenna-gain", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='int8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """antenna_gain must be of a type compatible with int8""",
          'defined-type': "int8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), is_leaf=True, yang_name="antenna-gain", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='int8', is_config=False)""",
        })

    self.__antenna_gain = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_antenna_gain(self):
    self.__antenna_gain = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), is_leaf=True, yang_name="antenna-gain", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='int8', is_config=False)


  def _get_scanning(self):
    """
    Getter method for scanning, mapped from YANG variable /access_points/access_point/radios/radio/state/scanning (boolean)

    YANG Description: Whether the radio will perform off-channel scanning, to
collect neighboring RF information.
    """
    return self.__scanning
      
  def _set_scanning(self, v, load=False):
    """
    Setter method for scanning, mapped from YANG variable /access_points/access_point/radios/radio/state/scanning (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_scanning is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_scanning() directly.

    YANG Description: Whether the radio will perform off-channel scanning, to
collect neighboring RF information.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="scanning", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """scanning must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="scanning", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)""",
        })

    self.__scanning = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_scanning(self):
    self.__scanning = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="scanning", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)


  def _get_scanning_interval(self):
    """
    Getter method for scanning_interval, mapped from YANG variable /access_points/access_point/radios/radio/state/scanning_interval (uint8)

    YANG Description: How often, in seconds, the radio will go off-channel to
perform scanning.
    """
    return self.__scanning_interval
      
  def _set_scanning_interval(self, v, load=False):
    """
    Setter method for scanning_interval, mapped from YANG variable /access_points/access_point/radios/radio/state/scanning_interval (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_scanning_interval is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_scanning_interval() directly.

    YANG Description: How often, in seconds, the radio will go off-channel to
perform scanning.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="scanning-interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """scanning_interval must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="scanning-interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)""",
        })

    self.__scanning_interval = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_scanning_interval(self):
    self.__scanning_interval = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="scanning-interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)


  def _get_scanning_dwell_time(self):
    """
    Getter method for scanning_dwell_time, mapped from YANG variable /access_points/access_point/radios/radio/state/scanning_dwell_time (uint16)

    YANG Description: Amount of time, in milliseconds, the radio will spend on a
channel during scanning-interval. If a Monitor-mode Radio, it
will cycle through scanning-allowed-channels spending this
amount of time on each.
    """
    return self.__scanning_dwell_time
      
  def _set_scanning_dwell_time(self, v, load=False):
    """
    Setter method for scanning_dwell_time, mapped from YANG variable /access_points/access_point/radios/radio/state/scanning_dwell_time (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_scanning_dwell_time is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_scanning_dwell_time() directly.

    YANG Description: Amount of time, in milliseconds, the radio will spend on a
channel during scanning-interval. If a Monitor-mode Radio, it
will cycle through scanning-allowed-channels spending this
amount of time on each.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="scanning-dwell-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """scanning_dwell_time must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="scanning-dwell-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)""",
        })

    self.__scanning_dwell_time = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_scanning_dwell_time(self):
    self.__scanning_dwell_time = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="scanning-dwell-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)


  def _get_scanning_defer_clients(self):
    """
    Getter method for scanning_defer_clients, mapped from YANG variable /access_points/access_point/radios/radio/state/scanning_defer_clients (uint8)

    YANG Description: Sets the number of associated stations after which the radio
should not perform scanning.
    """
    return self.__scanning_defer_clients
      
  def _set_scanning_defer_clients(self, v, load=False):
    """
    Setter method for scanning_defer_clients, mapped from YANG variable /access_points/access_point/radios/radio/state/scanning_defer_clients (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_scanning_defer_clients is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_scanning_defer_clients() directly.

    YANG Description: Sets the number of associated stations after which the radio
should not perform scanning.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="scanning-defer-clients", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """scanning_defer_clients must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="scanning-defer-clients", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)""",
        })

    self.__scanning_defer_clients = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_scanning_defer_clients(self):
    self.__scanning_defer_clients = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="scanning-defer-clients", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)


  def _get_scanning_defer_traffic(self):
    """
    Getter method for scanning_defer_traffic, mapped from YANG variable /access_points/access_point/radios/radio/state/scanning_defer_traffic (boolean)

    YANG Description: Do not perform scanning if any traffic received from an
active Station in the past 100ms marked as AC_VO or AC_VI.
    """
    return self.__scanning_defer_traffic
      
  def _set_scanning_defer_traffic(self, v, load=False):
    """
    Setter method for scanning_defer_traffic, mapped from YANG variable /access_points/access_point/radios/radio/state/scanning_defer_traffic (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_scanning_defer_traffic is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_scanning_defer_traffic() directly.

    YANG Description: Do not perform scanning if any traffic received from an
active Station in the past 100ms marked as AC_VO or AC_VI.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="scanning-defer-traffic", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """scanning_defer_traffic must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="scanning-defer-traffic", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)""",
        })

    self.__scanning_defer_traffic = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_scanning_defer_traffic(self):
    self.__scanning_defer_traffic = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="scanning-defer-traffic", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)


  def _get_base_radio_mac(self):
    """
    Getter method for base_radio_mac, mapped from YANG variable /access_points/access_point/radios/radio/state/base_radio_mac (oc-yang:mac-address)

    YANG Description: Represents the 'burned-in' base-radio MAC
address for the a Radio interface.
    """
    return self.__base_radio_mac
      
  def _set_base_radio_mac(self, v, load=False):
    """
    Setter method for base_radio_mac, mapped from YANG variable /access_points/access_point/radios/radio/state/base_radio_mac (oc-yang:mac-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_base_radio_mac is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_base_radio_mac() directly.

    YANG Description: Represents the 'burned-in' base-radio MAC
address for the a Radio interface.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="base-radio-mac", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:mac-address', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """base_radio_mac must be of a type compatible with oc-yang:mac-address""",
          'defined-type': "oc-yang:mac-address",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="base-radio-mac", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:mac-address', is_config=False)""",
        })

    self.__base_radio_mac = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_base_radio_mac(self):
    self.__base_radio_mac = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="base-radio-mac", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:mac-address', is_config=False)


  def _get_allowed_regulatory_channels(self):
    """
    Getter method for allowed_regulatory_channels, mapped from YANG variable /access_points/access_point/radios/radio/state/allowed_regulatory_channels (oc-wifi-types:channels-type)

    YANG Description: Allowed channels, per regulatory restrictions, this Radio is
capable of using. This is typically a combination of AP
certification and allowed frequencies per country.
    """
    return self.__allowed_regulatory_channels
      
  def _set_allowed_regulatory_channels(self, v, load=False):
    """
    Setter method for allowed_regulatory_channels, mapped from YANG variable /access_points/access_point/radios/radio/state/allowed_regulatory_channels (oc-wifi-types:channels-type)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_allowed_regulatory_channels is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_allowed_regulatory_channels() directly.

    YANG Description: Allowed channels, per regulatory restrictions, this Radio is
capable of using. This is typically a combination of AP
certification and allowed frequencies per country.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..14', '17', '21', '25', '29', '33', '36', '37', '40', '41', '44', '45', '48', '49', '52', '53', '56', '57', '60', '61', '64', '65', '69', '73', '77', '81', '85', '89', '93', '97', '100', '101', '104', '105', '108', '109', '112', '113', '116', '117', '120', '121', '124', '125', '128', '129', '132', '133', '136', '137', '140', '141', '144', '145', '149', '153', '157', '161', '165', '169', '173', '177', '181', '185', '189', '193', '197', '201', '205', '209', '213', '217', '221', '225', '229', '233']})), is_leaf=False, yang_name="allowed-regulatory-channels", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-wifi-types:channels-type', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """allowed_regulatory_channels must be of a type compatible with oc-wifi-types:channels-type""",
          'defined-type': "oc-wifi-types:channels-type",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..14', '17', '21', '25', '29', '33', '36', '37', '40', '41', '44', '45', '48', '49', '52', '53', '56', '57', '60', '61', '64', '65', '69', '73', '77', '81', '85', '89', '93', '97', '100', '101', '104', '105', '108', '109', '112', '113', '116', '117', '120', '121', '124', '125', '128', '129', '132', '133', '136', '137', '140', '141', '144', '145', '149', '153', '157', '161', '165', '169', '173', '177', '181', '185', '189', '193', '197', '201', '205', '209', '213', '217', '221', '225', '229', '233']})), is_leaf=False, yang_name="allowed-regulatory-channels", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-wifi-types:channels-type', is_config=False)""",
        })

    self.__allowed_regulatory_channels = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_allowed_regulatory_channels(self):
    self.__allowed_regulatory_channels = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..14', '17', '21', '25', '29', '33', '36', '37', '40', '41', '44', '45', '48', '49', '52', '53', '56', '57', '60', '61', '64', '65', '69', '73', '77', '81', '85', '89', '93', '97', '100', '101', '104', '105', '108', '109', '112', '113', '116', '117', '120', '121', '124', '125', '128', '129', '132', '133', '136', '137', '140', '141', '144', '145', '149', '153', '157', '161', '165', '169', '173', '177', '181', '185', '189', '193', '197', '201', '205', '209', '213', '217', '221', '225', '229', '233']})), is_leaf=False, yang_name="allowed-regulatory-channels", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-wifi-types:channels-type', is_config=False)


  def _get_software_selectable(self):
    """
    Getter method for software_selectable, mapped from YANG variable /access_points/access_point/radios/radio/state/software_selectable (boolean)

    YANG Description: Indicates whether or not the operating frequency can be
configured by the operator.
    """
    return self.__software_selectable
      
  def _set_software_selectable(self, v, load=False):
    """
    Setter method for software_selectable, mapped from YANG variable /access_points/access_point/radios/radio/state/software_selectable (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_software_selectable is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_software_selectable() directly.

    YANG Description: Indicates whether or not the operating frequency can be
configured by the operator.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="software-selectable", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """software_selectable must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="software-selectable", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)""",
        })

    self.__software_selectable = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_software_selectable(self):
    self.__software_selectable = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="software-selectable", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)


  def _get_dfs_hit_time(self):
    """
    Getter method for dfs_hit_time, mapped from YANG variable /access_points/access_point/radios/radio/state/dfs_hit_time (oc-types:timeticks64)

    YANG Description: Reports the time of the last DFS hit. The value is the
timestamp in nanoseconds relative to the Unix Epoch
(Jan 1, 1970 00:00:00 UTC).
    """
    return self.__dfs_hit_time
      
  def _set_dfs_hit_time(self, v, load=False):
    """
    Setter method for dfs_hit_time, mapped from YANG variable /access_points/access_point/radios/radio/state/dfs_hit_time (oc-types:timeticks64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dfs_hit_time is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dfs_hit_time() directly.

    YANG Description: Reports the time of the last DFS hit. The value is the
timestamp in nanoseconds relative to the Unix Epoch
(Jan 1, 1970 00:00:00 UTC).
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="dfs-hit-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dfs_hit_time must be of a type compatible with oc-types:timeticks64""",
          'defined-type': "oc-types:timeticks64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="dfs-hit-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)""",
        })

    self.__dfs_hit_time = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dfs_hit_time(self):
    self.__dfs_hit_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="dfs-hit-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)


  def _get_supported_channels(self):
    """
    Getter method for supported_channels, mapped from YANG variable /access_points/access_point/radios/radio/state/supported_channels (oc-wifi-types:channels-type)

    YANG Description: Channels allowed by a combination of regulatory and AP certification
restrictions.
    """
    return self.__supported_channels
      
  def _set_supported_channels(self, v, load=False):
    """
    Setter method for supported_channels, mapped from YANG variable /access_points/access_point/radios/radio/state/supported_channels (oc-wifi-types:channels-type)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_supported_channels is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_supported_channels() directly.

    YANG Description: Channels allowed by a combination of regulatory and AP certification
restrictions.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..14', '17', '21', '25', '29', '33', '36', '37', '40', '41', '44', '45', '48', '49', '52', '53', '56', '57', '60', '61', '64', '65', '69', '73', '77', '81', '85', '89', '93', '97', '100', '101', '104', '105', '108', '109', '112', '113', '116', '117', '120', '121', '124', '125', '128', '129', '132', '133', '136', '137', '140', '141', '144', '145', '149', '153', '157', '161', '165', '169', '173', '177', '181', '185', '189', '193', '197', '201', '205', '209', '213', '217', '221', '225', '229', '233']})), is_leaf=False, yang_name="supported-channels", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-wifi-types:channels-type', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """supported_channels must be of a type compatible with oc-wifi-types:channels-type""",
          'defined-type': "oc-wifi-types:channels-type",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..14', '17', '21', '25', '29', '33', '36', '37', '40', '41', '44', '45', '48', '49', '52', '53', '56', '57', '60', '61', '64', '65', '69', '73', '77', '81', '85', '89', '93', '97', '100', '101', '104', '105', '108', '109', '112', '113', '116', '117', '120', '121', '124', '125', '128', '129', '132', '133', '136', '137', '140', '141', '144', '145', '149', '153', '157', '161', '165', '169', '173', '177', '181', '185', '189', '193', '197', '201', '205', '209', '213', '217', '221', '225', '229', '233']})), is_leaf=False, yang_name="supported-channels", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-wifi-types:channels-type', is_config=False)""",
        })

    self.__supported_channels = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_supported_channels(self):
    self.__supported_channels = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..14', '17', '21', '25', '29', '33', '36', '37', '40', '41', '44', '45', '48', '49', '52', '53', '56', '57', '60', '61', '64', '65', '69', '73', '77', '81', '85', '89', '93', '97', '100', '101', '104', '105', '108', '109', '112', '113', '116', '117', '120', '121', '124', '125', '128', '129', '132', '133', '136', '137', '140', '141', '144', '145', '149', '153', '157', '161', '165', '169', '173', '177', '181', '185', '189', '193', '197', '201', '205', '209', '213', '217', '221', '225', '229', '233']})), is_leaf=False, yang_name="supported-channels", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-wifi-types:channels-type', is_config=False)


  def _get_channel_change_reason(self):
    """
    Getter method for channel_change_reason, mapped from YANG variable /access_points/access_point/radios/radio/state/channel_change_reason (identityref)

    YANG Description: When an Access Point changes channels, this will
provide the reason that led to the change.
    """
    return self.__channel_change_reason
      
  def _set_channel_change_reason(self, v, load=False):
    """
    Setter method for channel_change_reason, mapped from YANG variable /access_points/access_point/radios/radio/state/channel_change_reason (identityref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_channel_change_reason is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_channel_change_reason() directly.

    YANG Description: When an Access Point changes channels, this will
provide the reason that led to the change.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'DFS': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:DFS': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:DFS': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'NOISE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:NOISE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:NOISE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'ERRORS': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:ERRORS': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:ERRORS': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'BETTER_CHANNEL': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:BETTER_CHANNEL': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:BETTER_CHANNEL': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},), is_leaf=True, yang_name="channel-change-reason", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """channel_change_reason must be of a type compatible with identityref""",
          'defined-type': "openconfig-access-points:identityref",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'DFS': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:DFS': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:DFS': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'NOISE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:NOISE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:NOISE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'ERRORS': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:ERRORS': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:ERRORS': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'BETTER_CHANNEL': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:BETTER_CHANNEL': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:BETTER_CHANNEL': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},), is_leaf=True, yang_name="channel-change-reason", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)""",
        })

    self.__channel_change_reason = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_channel_change_reason(self):
    self.__channel_change_reason = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'DFS': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:DFS': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:DFS': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'NOISE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:NOISE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:NOISE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'ERRORS': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:ERRORS': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:ERRORS': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'BETTER_CHANNEL': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:BETTER_CHANNEL': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:BETTER_CHANNEL': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},), is_leaf=True, yang_name="channel-change-reason", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)


  def _get_total_channel_utilization(self):
    """
    Getter method for total_channel_utilization, mapped from YANG variable /access_points/access_point/radios/radio/state/total_channel_utilization (oc-types:percentage)

    YANG Description: Total 802.11 and non-802.11 channel utilization on this
Radio. The total channel utilization should include all time
periods the AP spent actively receiving and transmitting
802.11 frames, and also include all time spent with clear
channel assessment (CCA) in a busy state.
    """
    return self.__total_channel_utilization
      
  def _set_total_channel_utilization(self, v, load=False):
    """
    Setter method for total_channel_utilization, mapped from YANG variable /access_points/access_point/radios/radio/state/total_channel_utilization (oc-types:percentage)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_total_channel_utilization is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_total_channel_utilization() directly.

    YANG Description: Total 802.11 and non-802.11 channel utilization on this
Radio. The total channel utilization should include all time
periods the AP spent actively receiving and transmitting
802.11 frames, and also include all time spent with clear
channel assessment (CCA) in a busy state.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="total-channel-utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """total_channel_utilization must be of a type compatible with oc-types:percentage""",
          'defined-type': "oc-types:percentage",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="total-channel-utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)""",
        })

    self.__total_channel_utilization = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_total_channel_utilization(self):
    self.__total_channel_utilization = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="total-channel-utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)


  def _get_rx_dot11_channel_utilization(self):
    """
    Getter method for rx_dot11_channel_utilization, mapped from YANG variable /access_points/access_point/radios/radio/state/rx_dot11_channel_utilization (oc-types:percentage)

    YANG Description: Received channel-utilization due to any 802.11 frames, destined to this
radio or otherwise.
    """
    return self.__rx_dot11_channel_utilization
      
  def _set_rx_dot11_channel_utilization(self, v, load=False):
    """
    Setter method for rx_dot11_channel_utilization, mapped from YANG variable /access_points/access_point/radios/radio/state/rx_dot11_channel_utilization (oc-types:percentage)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_dot11_channel_utilization is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_dot11_channel_utilization() directly.

    YANG Description: Received channel-utilization due to any 802.11 frames, destined to this
radio or otherwise.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="rx-dot11-channel-utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_dot11_channel_utilization must be of a type compatible with oc-types:percentage""",
          'defined-type': "oc-types:percentage",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="rx-dot11-channel-utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)""",
        })

    self.__rx_dot11_channel_utilization = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rx_dot11_channel_utilization(self):
    self.__rx_dot11_channel_utilization = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="rx-dot11-channel-utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)


  def _get_rx_noise_channel_utilization(self):
    """
    Getter method for rx_noise_channel_utilization, mapped from YANG variable /access_points/access_point/radios/radio/state/rx_noise_channel_utilization (oc-types:percentage)

    YANG Description: Received channel-utilization percentage due to noise.
    """
    return self.__rx_noise_channel_utilization
      
  def _set_rx_noise_channel_utilization(self, v, load=False):
    """
    Setter method for rx_noise_channel_utilization, mapped from YANG variable /access_points/access_point/radios/radio/state/rx_noise_channel_utilization (oc-types:percentage)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_noise_channel_utilization is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_noise_channel_utilization() directly.

    YANG Description: Received channel-utilization percentage due to noise.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="rx-noise-channel-utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_noise_channel_utilization must be of a type compatible with oc-types:percentage""",
          'defined-type': "oc-types:percentage",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="rx-noise-channel-utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)""",
        })

    self.__rx_noise_channel_utilization = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rx_noise_channel_utilization(self):
    self.__rx_noise_channel_utilization = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="rx-noise-channel-utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)


  def _get_tx_dot11_channel_utilization(self):
    """
    Getter method for tx_dot11_channel_utilization, mapped from YANG variable /access_points/access_point/radios/radio/state/tx_dot11_channel_utilization (oc-types:percentage)

    YANG Description: Transmit channel-utilization percentage.
    """
    return self.__tx_dot11_channel_utilization
      
  def _set_tx_dot11_channel_utilization(self, v, load=False):
    """
    Setter method for tx_dot11_channel_utilization, mapped from YANG variable /access_points/access_point/radios/radio/state/tx_dot11_channel_utilization (oc-types:percentage)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tx_dot11_channel_utilization is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tx_dot11_channel_utilization() directly.

    YANG Description: Transmit channel-utilization percentage.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="tx-dot11-channel-utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tx_dot11_channel_utilization must be of a type compatible with oc-types:percentage""",
          'defined-type': "oc-types:percentage",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="tx-dot11-channel-utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)""",
        })

    self.__tx_dot11_channel_utilization = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_tx_dot11_channel_utilization(self):
    self.__tx_dot11_channel_utilization = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="tx-dot11-channel-utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)


  def _get_obss_rx(self):
    """
    Getter method for obss_rx, mapped from YANG variable /access_points/access_point/radios/radio/state/obss_rx (oc-types:percentage)

    YANG Description: Received channel utilization due to 802.11 frames NOT destined to a
BSS on this AP ('Overlapping BSS').
    """
    return self.__obss_rx
      
  def _set_obss_rx(self, v, load=False):
    """
    Setter method for obss_rx, mapped from YANG variable /access_points/access_point/radios/radio/state/obss_rx (oc-types:percentage)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_obss_rx is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_obss_rx() directly.

    YANG Description: Received channel utilization due to 802.11 frames NOT destined to a
BSS on this AP ('Overlapping BSS').
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="obss-rx", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """obss_rx must be of a type compatible with oc-types:percentage""",
          'defined-type': "oc-types:percentage",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="obss-rx", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)""",
        })

    self.__obss_rx = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_obss_rx(self):
    self.__obss_rx = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="obss-rx", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)


  def _get_counters(self):
    """
    Getter method for counters, mapped from YANG variable /access_points/access_point/radios/radio/state/counters (container)

    YANG Description: A collection of radio-related statistics objects.
    """
    return self.__counters
      
  def _set_counters(self, v, load=False):
    """
    Setter method for counters, mapped from YANG variable /access_points/access_point/radios/radio/state/counters (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_counters is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_counters() directly.

    YANG Description: A collection of radio-related statistics objects.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_counters_openconfig_access_points__access_points_access_point_radios_radio_state_counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """counters must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_counters_openconfig_access_points__access_points_access_point_radios_radio_state_counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)""",
        })

    self.__counters = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_counters(self):
    self.__counters = YANGDynClass(base=yc_counters_openconfig_access_points__access_points_access_point_radios_radio_state_counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)

  id = __builtin__.property(_get_id)
  operating_frequency = __builtin__.property(_get_operating_frequency)
  enabled = __builtin__.property(_get_enabled)
  transmit_power = __builtin__.property(_get_transmit_power)
  transmit_eirp = __builtin__.property(_get_transmit_eirp)
  channel = __builtin__.property(_get_channel)
  channel_width = __builtin__.property(_get_channel_width)
  bss_coloring = __builtin__.property(_get_bss_coloring)
  bss_color_id = __builtin__.property(_get_bss_color_id)
  dca = __builtin__.property(_get_dca)
  allowed_channels = __builtin__.property(_get_allowed_channels)
  dtp = __builtin__.property(_get_dtp)
  dtp_min = __builtin__.property(_get_dtp_min)
  dtp_max = __builtin__.property(_get_dtp_max)
  antenna_gain = __builtin__.property(_get_antenna_gain)
  scanning = __builtin__.property(_get_scanning)
  scanning_interval = __builtin__.property(_get_scanning_interval)
  scanning_dwell_time = __builtin__.property(_get_scanning_dwell_time)
  scanning_defer_clients = __builtin__.property(_get_scanning_defer_clients)
  scanning_defer_traffic = __builtin__.property(_get_scanning_defer_traffic)
  base_radio_mac = __builtin__.property(_get_base_radio_mac)
  allowed_regulatory_channels = __builtin__.property(_get_allowed_regulatory_channels)
  software_selectable = __builtin__.property(_get_software_selectable)
  dfs_hit_time = __builtin__.property(_get_dfs_hit_time)
  supported_channels = __builtin__.property(_get_supported_channels)
  channel_change_reason = __builtin__.property(_get_channel_change_reason)
  total_channel_utilization = __builtin__.property(_get_total_channel_utilization)
  rx_dot11_channel_utilization = __builtin__.property(_get_rx_dot11_channel_utilization)
  rx_noise_channel_utilization = __builtin__.property(_get_rx_noise_channel_utilization)
  tx_dot11_channel_utilization = __builtin__.property(_get_tx_dot11_channel_utilization)
  obss_rx = __builtin__.property(_get_obss_rx)
  counters = __builtin__.property(_get_counters)


  _pyangbind_elements = OrderedDict([('id', id), ('operating_frequency', operating_frequency), ('enabled', enabled), ('transmit_power', transmit_power), ('transmit_eirp', transmit_eirp), ('channel', channel), ('channel_width', channel_width), ('bss_coloring', bss_coloring), ('bss_color_id', bss_color_id), ('dca', dca), ('allowed_channels', allowed_channels), ('dtp', dtp), ('dtp_min', dtp_min), ('dtp_max', dtp_max), ('antenna_gain', antenna_gain), ('scanning', scanning), ('scanning_interval', scanning_interval), ('scanning_dwell_time', scanning_dwell_time), ('scanning_defer_clients', scanning_defer_clients), ('scanning_defer_traffic', scanning_defer_traffic), ('base_radio_mac', base_radio_mac), ('allowed_regulatory_channels', allowed_regulatory_channels), ('software_selectable', software_selectable), ('dfs_hit_time', dfs_hit_time), ('supported_channels', supported_channels), ('channel_change_reason', channel_change_reason), ('total_channel_utilization', total_channel_utilization), ('rx_dot11_channel_utilization', rx_dot11_channel_utilization), ('rx_noise_channel_utilization', rx_noise_channel_utilization), ('tx_dot11_channel_utilization', tx_dot11_channel_utilization), ('obss_rx', obss_rx), ('counters', counters), ])


class yc_state_openconfig_access_points__access_points_access_point_radios_radio_neighbors_neighbor_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/radios/radio/neighbors/neighbor/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: State container for RF neighbors.
  """
  __slots__ = ('_path_helper', '_extmethods', '__bssid','__ssid','__rssi','__channel','__primary_channel','__bss_color_id','__last_seen','__opmode',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__bssid = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="bssid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:mac-address', is_config=False)
    self.__ssid = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="ssid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)
    self.__rssi = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), is_leaf=True, yang_name="rssi", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='int8', is_config=False)
    self.__channel = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="channel", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)
    self.__primary_channel = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="primary-channel", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)
    self.__bss_color_id = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..63']}), is_leaf=True, yang_name="bss-color-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)
    self.__last_seen = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-seen", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)
    self.__opmode = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OPEN': {}, 'WPA2_PERSONAL': {}, 'WPA2_ENTERPRISE': {}, 'WPA_PERSONAL': {}, 'WPA_ENTERPRISE': {}, 'WEP': {}, 'ENHANCED_OPEN': {}, 'WPA3_SAE': {}, 'WPA3_ENTERPRISE': {}, 'WPA3_ENTERPRISE_192_BIT': {}},), is_leaf=True, yang_name="opmode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='enumeration', 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 ['access-points', 'access-point', 'radios', 'radio', 'neighbors', 'neighbor', 'state']

  def _get_bssid(self):
    """
    Getter method for bssid, mapped from YANG variable /access_points/access_point/radios/radio/neighbors/neighbor/state/bssid (oc-yang:mac-address)

    YANG Description: Neighboring BSSID.
    """
    return self.__bssid
      
  def _set_bssid(self, v, load=False):
    """
    Setter method for bssid, mapped from YANG variable /access_points/access_point/radios/radio/neighbors/neighbor/state/bssid (oc-yang:mac-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_bssid is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_bssid() directly.

    YANG Description: Neighboring BSSID.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="bssid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:mac-address', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """bssid must be of a type compatible with oc-yang:mac-address""",
          'defined-type': "oc-yang:mac-address",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="bssid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:mac-address', is_config=False)""",
        })

    self.__bssid = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_bssid(self):
    self.__bssid = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="bssid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:mac-address', is_config=False)


  def _get_ssid(self):
    """
    Getter method for ssid, mapped from YANG variable /access_points/access_point/radios/radio/neighbors/neighbor/state/ssid (string)

    YANG Description: The SSID of this neighboring BSSID.
    """
    return self.__ssid
      
  def _set_ssid(self, v, load=False):
    """
    Setter method for ssid, mapped from YANG variable /access_points/access_point/radios/radio/neighbors/neighbor/state/ssid (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ssid is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ssid() directly.

    YANG Description: The SSID of this neighboring BSSID.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="ssid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ssid must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="ssid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)""",
        })

    self.__ssid = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ssid(self):
    self.__ssid = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="ssid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)


  def _get_rssi(self):
    """
    Getter method for rssi, mapped from YANG variable /access_points/access_point/radios/radio/neighbors/neighbor/state/rssi (int8)

    YANG Description: The RSSI of this neighboring BSSID, expressed as a negative number.
    """
    return self.__rssi
      
  def _set_rssi(self, v, load=False):
    """
    Setter method for rssi, mapped from YANG variable /access_points/access_point/radios/radio/neighbors/neighbor/state/rssi (int8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rssi is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rssi() directly.

    YANG Description: The RSSI of this neighboring BSSID, expressed as a negative number.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), is_leaf=True, yang_name="rssi", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='int8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rssi must be of a type compatible with int8""",
          'defined-type': "int8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), is_leaf=True, yang_name="rssi", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='int8', is_config=False)""",
        })

    self.__rssi = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rssi(self):
    self.__rssi = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), is_leaf=True, yang_name="rssi", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='int8', is_config=False)


  def _get_channel(self):
    """
    Getter method for channel, mapped from YANG variable /access_points/access_point/radios/radio/neighbors/neighbor/state/channel (uint16)

    YANG Description: The channel of this neighboring BSSID. This is to utilize
802.11ac nomenclature. For example, 40MHz channel 36-40
represented as channel 38. The primary-channel leaf is used to
identify the primary 20MHz channel of a bonded channel.
    """
    return self.__channel
      
  def _set_channel(self, v, load=False):
    """
    Setter method for channel, mapped from YANG variable /access_points/access_point/radios/radio/neighbors/neighbor/state/channel (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_channel is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_channel() directly.

    YANG Description: The channel of this neighboring BSSID. This is to utilize
802.11ac nomenclature. For example, 40MHz channel 36-40
represented as channel 38. The primary-channel leaf is used to
identify the primary 20MHz channel of a bonded channel.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="channel", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """channel must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="channel", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)""",
        })

    self.__channel = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_channel(self):
    self.__channel = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="channel", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)


  def _get_primary_channel(self):
    """
    Getter method for primary_channel, mapped from YANG variable /access_points/access_point/radios/radio/neighbors/neighbor/state/primary_channel (uint16)

    YANG Description: The primary 20MHz channel, if the neighbor is operating on
bonded channel.
    """
    return self.__primary_channel
      
  def _set_primary_channel(self, v, load=False):
    """
    Setter method for primary_channel, mapped from YANG variable /access_points/access_point/radios/radio/neighbors/neighbor/state/primary_channel (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_primary_channel is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_primary_channel() directly.

    YANG Description: The primary 20MHz channel, if the neighbor is operating on
bonded channel.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="primary-channel", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """primary_channel must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="primary-channel", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)""",
        })

    self.__primary_channel = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_primary_channel(self):
    self.__primary_channel = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="primary-channel", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)


  def _get_bss_color_id(self):
    """
    Getter method for bss_color_id, mapped from YANG variable /access_points/access_point/radios/radio/neighbors/neighbor/state/bss_color_id (uint8)

    YANG Description: Numerical identifier of the BSS.
    """
    return self.__bss_color_id
      
  def _set_bss_color_id(self, v, load=False):
    """
    Setter method for bss_color_id, mapped from YANG variable /access_points/access_point/radios/radio/neighbors/neighbor/state/bss_color_id (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_bss_color_id is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_bss_color_id() directly.

    YANG Description: Numerical identifier of the BSS.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..63']}), is_leaf=True, yang_name="bss-color-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """bss_color_id must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..63']}), is_leaf=True, yang_name="bss-color-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)""",
        })

    self.__bss_color_id = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_bss_color_id(self):
    self.__bss_color_id = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..63']}), is_leaf=True, yang_name="bss-color-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)


  def _get_last_seen(self):
    """
    Getter method for last_seen, mapped from YANG variable /access_points/access_point/radios/radio/neighbors/neighbor/state/last_seen (oc-types:timeticks64)

    YANG Description: Reports the time this reading was taken, indicating when
this neighbor was last seen. If a cache is used, it MUST be
updated instantly when a neighbor BSS changes channels, or a
new BSS is seen. The value is the timestamp in nanoseconds
relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC).
    """
    return self.__last_seen
      
  def _set_last_seen(self, v, load=False):
    """
    Setter method for last_seen, mapped from YANG variable /access_points/access_point/radios/radio/neighbors/neighbor/state/last_seen (oc-types:timeticks64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_last_seen is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_last_seen() directly.

    YANG Description: Reports the time this reading was taken, indicating when
this neighbor was last seen. If a cache is used, it MUST be
updated instantly when a neighbor BSS changes channels, or a
new BSS is seen. The value is the timestamp in nanoseconds
relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC).
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-seen", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """last_seen must be of a type compatible with oc-types:timeticks64""",
          'defined-type': "oc-types:timeticks64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-seen", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)""",
        })

    self.__last_seen = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_last_seen(self):
    self.__last_seen = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-seen", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)


  def _get_opmode(self):
    """
    Getter method for opmode, mapped from YANG variable /access_points/access_point/radios/radio/neighbors/neighbor/state/opmode (enumeration)

    YANG Description: Operating mode of the BSS.
    """
    return self.__opmode
      
  def _set_opmode(self, v, load=False):
    """
    Setter method for opmode, mapped from YANG variable /access_points/access_point/radios/radio/neighbors/neighbor/state/opmode (enumeration)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_opmode is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_opmode() directly.

    YANG Description: Operating mode of the BSS.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OPEN': {}, 'WPA2_PERSONAL': {}, 'WPA2_ENTERPRISE': {}, 'WPA_PERSONAL': {}, 'WPA_ENTERPRISE': {}, 'WEP': {}, 'ENHANCED_OPEN': {}, 'WPA3_SAE': {}, 'WPA3_ENTERPRISE': {}, 'WPA3_ENTERPRISE_192_BIT': {}},), is_leaf=True, yang_name="opmode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='enumeration', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """opmode must be of a type compatible with enumeration""",
          'defined-type': "openconfig-access-points:enumeration",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OPEN': {}, 'WPA2_PERSONAL': {}, 'WPA2_ENTERPRISE': {}, 'WPA_PERSONAL': {}, 'WPA_ENTERPRISE': {}, 'WEP': {}, 'ENHANCED_OPEN': {}, 'WPA3_SAE': {}, 'WPA3_ENTERPRISE': {}, 'WPA3_ENTERPRISE_192_BIT': {}},), is_leaf=True, yang_name="opmode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='enumeration', is_config=False)""",
        })

    self.__opmode = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_opmode(self):
    self.__opmode = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OPEN': {}, 'WPA2_PERSONAL': {}, 'WPA2_ENTERPRISE': {}, 'WPA_PERSONAL': {}, 'WPA_ENTERPRISE': {}, 'WEP': {}, 'ENHANCED_OPEN': {}, 'WPA3_SAE': {}, 'WPA3_ENTERPRISE': {}, 'WPA3_ENTERPRISE_192_BIT': {}},), is_leaf=True, yang_name="opmode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='enumeration', is_config=False)

  bssid = __builtin__.property(_get_bssid)
  ssid = __builtin__.property(_get_ssid)
  rssi = __builtin__.property(_get_rssi)
  channel = __builtin__.property(_get_channel)
  primary_channel = __builtin__.property(_get_primary_channel)
  bss_color_id = __builtin__.property(_get_bss_color_id)
  last_seen = __builtin__.property(_get_last_seen)
  opmode = __builtin__.property(_get_opmode)


  _pyangbind_elements = OrderedDict([('bssid', bssid), ('ssid', ssid), ('rssi', rssi), ('channel', channel), ('primary_channel', primary_channel), ('bss_color_id', bss_color_id), ('last_seen', last_seen), ('opmode', opmode), ])


class yc_neighbor_openconfig_access_points__access_points_access_point_radios_radio_neighbors_neighbor(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/radios/radio/neighbors/neighbor. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: The MAC address, or BSSID, of a neighbor, and
their corresponding RSSI.
  """
  __slots__ = ('_path_helper', '_extmethods', '__bssid','__state',)

  _yang_name = 'neighbor'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__bssid = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="bssid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=False)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_radios_radio_neighbors_neighbor_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/wifi/access-points', defining_module='openconfig-access-points', 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 ['access-points', 'access-point', 'radios', 'radio', 'neighbors', 'neighbor']

  def _get_bssid(self):
    """
    Getter method for bssid, mapped from YANG variable /access_points/access_point/radios/radio/neighbors/neighbor/bssid (leafref)

    YANG Description: Reference to neighbor BSSID.
    """
    return self.__bssid
      
  def _set_bssid(self, v, load=False):
    """
    Setter method for bssid, mapped from YANG variable /access_points/access_point/radios/radio/neighbors/neighbor/bssid (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_bssid is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_bssid() directly.

    YANG Description: Reference to neighbor BSSID.
    """
    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="bssid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """bssid must be of a type compatible with leafref""",
          'defined-type': "leafref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="bssid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=False)""",
        })

    self.__bssid = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_bssid(self):
    self.__bssid = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="bssid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=False)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/radios/radio/neighbors/neighbor/state (container)

    YANG Description: State container for RF neighbors.
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/radios/radio/neighbors/neighbor/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 container for RF neighbors.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_radios_radio_neighbors_neighbor_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/wifi/access-points', defining_module='openconfig-access-points', 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=yc_state_openconfig_access_points__access_points_access_point_radios_radio_neighbors_neighbor_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_radios_radio_neighbors_neighbor_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)

  bssid = __builtin__.property(_get_bssid)
  state = __builtin__.property(_get_state)


  _pyangbind_elements = OrderedDict([('bssid', bssid), ('state', state), ])


class yc_neighbors_openconfig_access_points__access_points_access_point_radios_radio_neighbors(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/radios/radio/neighbors. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Top-level container for RF neighbors.
  """
  __slots__ = ('_path_helper', '_extmethods', '__neighbor',)

  _yang_name = 'neighbors'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__neighbor = YANGDynClass(base=YANGListType("bssid",yc_neighbor_openconfig_access_points__access_points_access_point_radios_radio_neighbors_neighbor, yang_name="neighbor", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='bssid', extensions=None), is_container='list', yang_name="neighbor", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)

    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 ['access-points', 'access-point', 'radios', 'radio', 'neighbors']

  def _get_neighbor(self):
    """
    Getter method for neighbor, mapped from YANG variable /access_points/access_point/radios/radio/neighbors/neighbor (list)

    YANG Description: The MAC address, or BSSID, of a neighbor, and
their corresponding RSSI.
    """
    return self.__neighbor
      
  def _set_neighbor(self, v, load=False):
    """
    Setter method for neighbor, mapped from YANG variable /access_points/access_point/radios/radio/neighbors/neighbor (list)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_neighbor is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_neighbor() directly.

    YANG Description: The MAC address, or BSSID, of a neighbor, and
their corresponding RSSI.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGListType("bssid",yc_neighbor_openconfig_access_points__access_points_access_point_radios_radio_neighbors_neighbor, yang_name="neighbor", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='bssid', extensions=None), is_container='list', yang_name="neighbor", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """neighbor must be of a type compatible with list""",
          'defined-type': "list",
          'generated-type': """YANGDynClass(base=YANGListType("bssid",yc_neighbor_openconfig_access_points__access_points_access_point_radios_radio_neighbors_neighbor, yang_name="neighbor", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='bssid', extensions=None), is_container='list', yang_name="neighbor", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)""",
        })

    self.__neighbor = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_neighbor(self):
    self.__neighbor = YANGDynClass(base=YANGListType("bssid",yc_neighbor_openconfig_access_points__access_points_access_point_radios_radio_neighbors_neighbor, yang_name="neighbor", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='bssid', extensions=None), is_container='list', yang_name="neighbor", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)

  neighbor = __builtin__.property(_get_neighbor, _set_neighbor)


  _pyangbind_elements = OrderedDict([('neighbor', neighbor), ])


class yc_radio_openconfig_access_points__access_points_access_point_radios_radio(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/radios/radio. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: The list of radios on the device.
  """
  __slots__ = ('_path_helper', '_extmethods', '__id','__operating_frequency','__config','__state','__neighbors',)

  _yang_name = 'radio'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__id = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)
    self.__operating_frequency = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="operating-frequency", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_radios_radio_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_radios_radio_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__neighbors = YANGDynClass(base=yc_neighbors_openconfig_access_points__access_points_access_point_radios_radio_neighbors, is_container='container', yang_name="neighbors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'radios', 'radio']

  def _get_id(self):
    """
    Getter method for id, mapped from YANG variable /access_points/access_point/radios/radio/id (leafref)

    YANG Description: List key referencing the configured radio id.
    """
    return self.__id
      
  def _set_id(self, v, load=False):
    """
    Setter method for id, mapped from YANG variable /access_points/access_point/radios/radio/id (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_id is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_id() directly.

    YANG Description: List key referencing the configured radio id.
    """
    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="id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """id must be of a type compatible with leafref""",
          'defined-type': "leafref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)""",
        })

    self.__id = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_id(self):
    self.__id = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)


  def _get_operating_frequency(self):
    """
    Getter method for operating_frequency, mapped from YANG variable /access_points/access_point/radios/radio/operating_frequency (leafref)

    YANG Description: List key referencing the radio operating-frequency.
    """
    return self.__operating_frequency
      
  def _set_operating_frequency(self, v, load=False):
    """
    Setter method for operating_frequency, mapped from YANG variable /access_points/access_point/radios/radio/operating_frequency (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_operating_frequency is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_operating_frequency() directly.

    YANG Description: List key referencing the radio operating-frequency.
    """
    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="operating-frequency", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """operating_frequency must be of a type compatible with leafref""",
          'defined-type': "leafref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="operating-frequency", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)""",
        })

    self.__operating_frequency = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_operating_frequency(self):
    self.__operating_frequency = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="operating-frequency", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)


  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/radios/radio/config (container)

    YANG Description: Configurable items at the global, radio interface
level.
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/radios/radio/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Configurable items at the global, radio interface
level.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_access_points__access_points_access_point_radios_radio_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_radios_radio_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_radios_radio_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/radios/radio/state (container)

    YANG Description: Operational state data at the global radio level.
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/radios/radio/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: Operational state data at the global radio level.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_radios_radio_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_radios_radio_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_radios_radio_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_neighbors(self):
    """
    Getter method for neighbors, mapped from YANG variable /access_points/access_point/radios/radio/neighbors (container)

    YANG Description: Top-level container for RF neighbors.
    """
    return self.__neighbors
      
  def _set_neighbors(self, v, load=False):
    """
    Setter method for neighbors, mapped from YANG variable /access_points/access_point/radios/radio/neighbors (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_neighbors is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_neighbors() directly.

    YANG Description: Top-level container for RF neighbors.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_neighbors_openconfig_access_points__access_points_access_point_radios_radio_neighbors, is_container='container', yang_name="neighbors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """neighbors must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_neighbors_openconfig_access_points__access_points_access_point_radios_radio_neighbors, is_container='container', yang_name="neighbors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__neighbors = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_neighbors(self):
    self.__neighbors = YANGDynClass(base=yc_neighbors_openconfig_access_points__access_points_access_point_radios_radio_neighbors, is_container='container', yang_name="neighbors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

  id = __builtin__.property(_get_id, _set_id)
  operating_frequency = __builtin__.property(_get_operating_frequency, _set_operating_frequency)
  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)
  neighbors = __builtin__.property(_get_neighbors, _set_neighbors)


  _pyangbind_elements = OrderedDict([('id', id), ('operating_frequency', operating_frequency), ('config', config), ('state', state), ('neighbors', neighbors), ])


class yc_radios_openconfig_access_points__access_points_access_point_radios(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/radios. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Top level container for radios, including configuration
and state data.
  """
  __slots__ = ('_path_helper', '_extmethods', '__radio',)

  _yang_name = 'radios'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__radio = YANGDynClass(base=YANGListType("id operating_frequency",yc_radio_openconfig_access_points__access_points_access_point_radios_radio, yang_name="radio", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='id operating-frequency', extensions=None), is_container='list', yang_name="radio", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)

    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 ['access-points', 'access-point', 'radios']

  def _get_radio(self):
    """
    Getter method for radio, mapped from YANG variable /access_points/access_point/radios/radio (list)

    YANG Description: The list of radios on the device.
    """
    return self.__radio
      
  def _set_radio(self, v, load=False):
    """
    Setter method for radio, mapped from YANG variable /access_points/access_point/radios/radio (list)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_radio is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_radio() directly.

    YANG Description: The list of radios on the device.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGListType("id operating_frequency",yc_radio_openconfig_access_points__access_points_access_point_radios_radio, yang_name="radio", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='id operating-frequency', extensions=None), is_container='list', yang_name="radio", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """radio must be of a type compatible with list""",
          'defined-type': "list",
          'generated-type': """YANGDynClass(base=YANGListType("id operating_frequency",yc_radio_openconfig_access_points__access_points_access_point_radios_radio, yang_name="radio", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='id operating-frequency', extensions=None), is_container='list', yang_name="radio", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)""",
        })

    self.__radio = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_radio(self):
    self.__radio = YANGDynClass(base=YANGListType("id operating_frequency",yc_radio_openconfig_access_points__access_points_access_point_radios_radio, yang_name="radio", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='id operating-frequency', extensions=None), is_container='list', yang_name="radio", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)

  radio = __builtin__.property(_get_radio, _set_radio)


  _pyangbind_elements = OrderedDict([('radio', radio), ])


class yc_config_openconfig_access_points__access_points_access_point_ssids_ssid_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/ssids/ssid/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Configurable items at the global, SSID level
  """
  __slots__ = ('_path_helper', '_extmethods', '__name','__enabled','__hidden','__default_vlan','__vlan_list','__operating_frequency','__basic_data_rates_2g','__supported_data_rates_2g','__basic_data_rates_5g','__supported_data_rates_5g','__basic_data_rates_6g','__supported_data_rates_6g','__broadcast_filter','__multicast_filter','__ipv6_ndp_filter','__ipv6_ndp_filter_timer','__station_isolation','__opmode','__wpa2_psk','__wpa3_psk','__server_group','__dva','__dhcp_required','__qbss_load','__advertise_apname','__csa','__ptk_timeout','__gtk_timeout','__dot11k','__okc','__mfp',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=True)
    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)
    self.__hidden = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="hidden", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)
    self.__default_vlan = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}), is_leaf=True, yang_name="default-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-vlan-types:vlan-id', is_config=True)
    self.__vlan_list = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']})), is_leaf=False, yang_name="vlan-list", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-vlan-types:vlan-id', is_config=True)
    self.__operating_frequency = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},), default=six.text_type("oc-wifi-types:FREQ_2_5_GHZ"), is_leaf=True, yang_name="operating-frequency", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=True)
    self.__basic_data_rates_2g = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="basic-data-rates-2g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=True)
    self.__supported_data_rates_2g = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="supported-data-rates-2g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=True)
    self.__basic_data_rates_5g = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="basic-data-rates-5g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=True)
    self.__supported_data_rates_5g = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="supported-data-rates-5g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=True)
    self.__basic_data_rates_6g = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="basic-data-rates-6g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=True)
    self.__supported_data_rates_6g = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="supported-data-rates-6g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=True)
    self.__broadcast_filter = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="broadcast-filter", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)
    self.__multicast_filter = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="multicast-filter", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)
    self.__ipv6_ndp_filter = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="ipv6-ndp-filter", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)
    self.__ipv6_ndp_filter_timer = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="ipv6-ndp-filter-timer", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=True)
    self.__station_isolation = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="station-isolation", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)
    self.__opmode = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OPEN': {}, 'WPA2_PERSONAL': {}, 'WPA2_ENTERPRISE': {}, 'ENHANCED_OPEN': {}, 'WPA3_SAE': {}, 'WPA3_ENTERPRISE': {}, 'WPA3_ENTERPRISE_192_BIT': {}},), is_leaf=True, yang_name="opmode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='enumeration', is_config=True)
    self.__wpa2_psk = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'length': ['8..63']}), is_leaf=True, yang_name="wpa2-psk", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=True)
    self.__wpa3_psk = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'length': ['8..63']}), is_leaf=True, yang_name="wpa3-psk", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=True)
    self.__server_group = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="server-group", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=True)
    self.__dva = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dva", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)
    self.__dhcp_required = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dhcp-required", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)
    self.__qbss_load = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="qbss-load", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)
    self.__advertise_apname = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="advertise-apname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)
    self.__csa = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="csa", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)
    self.__ptk_timeout = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="ptk-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=True)
    self.__gtk_timeout = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="gtk-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=True)
    self.__dot11k = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dot11k", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)
    self.__okc = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="okc", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)
    self.__mfp = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="mfp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)

    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 ['access-points', 'access-point', 'ssids', 'ssid', 'config']

  def _get_name(self):
    """
    Getter method for name, mapped from YANG variable /access_points/access_point/ssids/ssid/config/name (string)

    YANG Description: The name of the SSID.
    """
    return self.__name
      
  def _set_name(self, v, load=False):
    """
    Setter method for name, mapped from YANG variable /access_points/access_point/ssids/ssid/config/name (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_name is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_name() directly.

    YANG Description: The name of the SSID.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """name must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=True)""",
        })

    self.__name = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_name(self):
    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=True)


  def _get_enabled(self):
    """
    Getter method for enabled, mapped from YANG variable /access_points/access_point/ssids/ssid/config/enabled (boolean)

    YANG Description: The desired operational state (up/down) of this SSID.
    """
    return self.__enabled
      
  def _set_enabled(self, v, load=False):
    """
    Setter method for enabled, mapped from YANG variable /access_points/access_point/ssids/ssid/config/enabled (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_enabled is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_enabled() directly.

    YANG Description: The desired operational state (up/down) of this SSID.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """enabled must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)""",
        })

    self.__enabled = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_enabled(self):
    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)


  def _get_hidden(self):
    """
    Getter method for hidden, mapped from YANG variable /access_points/access_point/ssids/ssid/config/hidden (boolean)

    YANG Description: Whether this SSID IE is hidden within Beacons.
    """
    return self.__hidden
      
  def _set_hidden(self, v, load=False):
    """
    Setter method for hidden, mapped from YANG variable /access_points/access_point/ssids/ssid/config/hidden (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_hidden is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_hidden() directly.

    YANG Description: Whether this SSID IE is hidden within Beacons.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="hidden", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """hidden must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="hidden", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)""",
        })

    self.__hidden = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_hidden(self):
    self.__hidden = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="hidden", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)


  def _get_default_vlan(self):
    """
    Getter method for default_vlan, mapped from YANG variable /access_points/access_point/ssids/ssid/config/default_vlan (oc-vlan-types:vlan-id)

    YANG Description: Default VLAN tag used by the SSID. When unspecified, SSID
defaults to untagged. If DVA enabled and RADIUS returns a
VLAN not present in 'vlan-list', or RADIUS returns no VLAN
(Tunnel-Private-Group-Id), this VLAN will be used. If DVA
not enabled, all packets are tagged with this VLAN.
    """
    return self.__default_vlan
      
  def _set_default_vlan(self, v, load=False):
    """
    Setter method for default_vlan, mapped from YANG variable /access_points/access_point/ssids/ssid/config/default_vlan (oc-vlan-types:vlan-id)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_default_vlan is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_default_vlan() directly.

    YANG Description: Default VLAN tag used by the SSID. When unspecified, SSID
defaults to untagged. If DVA enabled and RADIUS returns a
VLAN not present in 'vlan-list', or RADIUS returns no VLAN
(Tunnel-Private-Group-Id), this VLAN will be used. If DVA
not enabled, all packets are tagged with this VLAN.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}), is_leaf=True, yang_name="default-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-vlan-types:vlan-id', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """default_vlan must be of a type compatible with oc-vlan-types:vlan-id""",
          'defined-type': "oc-vlan-types:vlan-id",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}), is_leaf=True, yang_name="default-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-vlan-types:vlan-id', is_config=True)""",
        })

    self.__default_vlan = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_default_vlan(self):
    self.__default_vlan = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}), is_leaf=True, yang_name="default-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-vlan-types:vlan-id', is_config=True)


  def _get_vlan_list(self):
    """
    Getter method for vlan_list, mapped from YANG variable /access_points/access_point/ssids/ssid/config/vlan_list (oc-vlan-types:vlan-id)

    YANG Description: List of VLANs allowed on the SSID, if DVA is enabled. Note,
if DVA enabled and RADIUS returns no VLAN or a VLAN outside
of this list, the SSID will be tagged with the value of
vlan-id (or untagged if 'vlan-id' not configured).
    """
    return self.__vlan_list
      
  def _set_vlan_list(self, v, load=False):
    """
    Setter method for vlan_list, mapped from YANG variable /access_points/access_point/ssids/ssid/config/vlan_list (oc-vlan-types:vlan-id)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_vlan_list is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_vlan_list() directly.

    YANG Description: List of VLANs allowed on the SSID, if DVA is enabled. Note,
if DVA enabled and RADIUS returns no VLAN or a VLAN outside
of this list, the SSID will be tagged with the value of
vlan-id (or untagged if 'vlan-id' not configured).
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']})), is_leaf=False, yang_name="vlan-list", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-vlan-types:vlan-id', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """vlan_list must be of a type compatible with oc-vlan-types:vlan-id""",
          'defined-type': "oc-vlan-types:vlan-id",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']})), is_leaf=False, yang_name="vlan-list", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-vlan-types:vlan-id', is_config=True)""",
        })

    self.__vlan_list = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_vlan_list(self):
    self.__vlan_list = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']})), is_leaf=False, yang_name="vlan-list", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-vlan-types:vlan-id', is_config=True)


  def _get_operating_frequency(self):
    """
    Getter method for operating_frequency, mapped from YANG variable /access_points/access_point/ssids/ssid/config/operating_frequency (identityref)

    YANG Description: Operating frequency of this SSID. When none specified, the
default is dual-band 2.4 and 5 GHz.
    """
    return self.__operating_frequency
      
  def _set_operating_frequency(self, v, load=False):
    """
    Setter method for operating_frequency, mapped from YANG variable /access_points/access_point/ssids/ssid/config/operating_frequency (identityref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_operating_frequency is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_operating_frequency() directly.

    YANG Description: Operating frequency of this SSID. When none specified, the
default is dual-band 2.4 and 5 GHz.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},), default=six.text_type("oc-wifi-types:FREQ_2_5_GHZ"), is_leaf=True, yang_name="operating-frequency", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """operating_frequency must be of a type compatible with identityref""",
          'defined-type': "openconfig-access-points:identityref",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},), default=six.text_type("oc-wifi-types:FREQ_2_5_GHZ"), is_leaf=True, yang_name="operating-frequency", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=True)""",
        })

    self.__operating_frequency = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_operating_frequency(self):
    self.__operating_frequency = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},), default=six.text_type("oc-wifi-types:FREQ_2_5_GHZ"), is_leaf=True, yang_name="operating-frequency", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=True)


  def _get_basic_data_rates_2g(self):
    """
    Getter method for basic_data_rates_2g, mapped from YANG variable /access_points/access_point/ssids/ssid/config/basic_data_rates_2g (identityref)

    YANG Description: 2.4GHz Basic data-rates for the SSID.
    """
    return self.__basic_data_rates_2g
      
  def _set_basic_data_rates_2g(self, v, load=False):
    """
    Setter method for basic_data_rates_2g, mapped from YANG variable /access_points/access_point/ssids/ssid/config/basic_data_rates_2g (identityref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_basic_data_rates_2g is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_basic_data_rates_2g() directly.

    YANG Description: 2.4GHz Basic data-rates for the SSID.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="basic-data-rates-2g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """basic_data_rates_2g must be of a type compatible with identityref""",
          'defined-type': "openconfig-access-points:identityref",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="basic-data-rates-2g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=True)""",
        })

    self.__basic_data_rates_2g = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_basic_data_rates_2g(self):
    self.__basic_data_rates_2g = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="basic-data-rates-2g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=True)


  def _get_supported_data_rates_2g(self):
    """
    Getter method for supported_data_rates_2g, mapped from YANG variable /access_points/access_point/ssids/ssid/config/supported_data_rates_2g (identityref)

    YANG Description: 2.4GHz Supported data-rates for the SSID.
    """
    return self.__supported_data_rates_2g
      
  def _set_supported_data_rates_2g(self, v, load=False):
    """
    Setter method for supported_data_rates_2g, mapped from YANG variable /access_points/access_point/ssids/ssid/config/supported_data_rates_2g (identityref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_supported_data_rates_2g is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_supported_data_rates_2g() directly.

    YANG Description: 2.4GHz Supported data-rates for the SSID.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="supported-data-rates-2g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """supported_data_rates_2g must be of a type compatible with identityref""",
          'defined-type': "openconfig-access-points:identityref",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="supported-data-rates-2g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=True)""",
        })

    self.__supported_data_rates_2g = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_supported_data_rates_2g(self):
    self.__supported_data_rates_2g = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="supported-data-rates-2g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=True)


  def _get_basic_data_rates_5g(self):
    """
    Getter method for basic_data_rates_5g, mapped from YANG variable /access_points/access_point/ssids/ssid/config/basic_data_rates_5g (identityref)

    YANG Description: 5GHz Basic data-rates for the SSID.
    """
    return self.__basic_data_rates_5g
      
  def _set_basic_data_rates_5g(self, v, load=False):
    """
    Setter method for basic_data_rates_5g, mapped from YANG variable /access_points/access_point/ssids/ssid/config/basic_data_rates_5g (identityref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_basic_data_rates_5g is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_basic_data_rates_5g() directly.

    YANG Description: 5GHz Basic data-rates for the SSID.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="basic-data-rates-5g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """basic_data_rates_5g must be of a type compatible with identityref""",
          'defined-type': "openconfig-access-points:identityref",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="basic-data-rates-5g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=True)""",
        })

    self.__basic_data_rates_5g = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_basic_data_rates_5g(self):
    self.__basic_data_rates_5g = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="basic-data-rates-5g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=True)


  def _get_supported_data_rates_5g(self):
    """
    Getter method for supported_data_rates_5g, mapped from YANG variable /access_points/access_point/ssids/ssid/config/supported_data_rates_5g (identityref)

    YANG Description: 5GHz Supported data-rates for the SSID.
    """
    return self.__supported_data_rates_5g
      
  def _set_supported_data_rates_5g(self, v, load=False):
    """
    Setter method for supported_data_rates_5g, mapped from YANG variable /access_points/access_point/ssids/ssid/config/supported_data_rates_5g (identityref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_supported_data_rates_5g is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_supported_data_rates_5g() directly.

    YANG Description: 5GHz Supported data-rates for the SSID.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="supported-data-rates-5g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """supported_data_rates_5g must be of a type compatible with identityref""",
          'defined-type': "openconfig-access-points:identityref",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="supported-data-rates-5g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=True)""",
        })

    self.__supported_data_rates_5g = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_supported_data_rates_5g(self):
    self.__supported_data_rates_5g = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="supported-data-rates-5g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=True)


  def _get_basic_data_rates_6g(self):
    """
    Getter method for basic_data_rates_6g, mapped from YANG variable /access_points/access_point/ssids/ssid/config/basic_data_rates_6g (identityref)

    YANG Description: 6GHz Basic data-rates for the SSID.
    """
    return self.__basic_data_rates_6g
      
  def _set_basic_data_rates_6g(self, v, load=False):
    """
    Setter method for basic_data_rates_6g, mapped from YANG variable /access_points/access_point/ssids/ssid/config/basic_data_rates_6g (identityref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_basic_data_rates_6g is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_basic_data_rates_6g() directly.

    YANG Description: 6GHz Basic data-rates for the SSID.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="basic-data-rates-6g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """basic_data_rates_6g must be of a type compatible with identityref""",
          'defined-type': "openconfig-access-points:identityref",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="basic-data-rates-6g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=True)""",
        })

    self.__basic_data_rates_6g = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_basic_data_rates_6g(self):
    self.__basic_data_rates_6g = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="basic-data-rates-6g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=True)


  def _get_supported_data_rates_6g(self):
    """
    Getter method for supported_data_rates_6g, mapped from YANG variable /access_points/access_point/ssids/ssid/config/supported_data_rates_6g (identityref)

    YANG Description: 6GHz Supported data-rates for the SSID.
    """
    return self.__supported_data_rates_6g
      
  def _set_supported_data_rates_6g(self, v, load=False):
    """
    Setter method for supported_data_rates_6g, mapped from YANG variable /access_points/access_point/ssids/ssid/config/supported_data_rates_6g (identityref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_supported_data_rates_6g is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_supported_data_rates_6g() directly.

    YANG Description: 6GHz Supported data-rates for the SSID.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="supported-data-rates-6g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """supported_data_rates_6g must be of a type compatible with identityref""",
          'defined-type': "openconfig-access-points:identityref",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="supported-data-rates-6g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=True)""",
        })

    self.__supported_data_rates_6g = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_supported_data_rates_6g(self):
    self.__supported_data_rates_6g = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="supported-data-rates-6g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=True)


  def _get_broadcast_filter(self):
    """
    Getter method for broadcast_filter, mapped from YANG variable /access_points/access_point/ssids/ssid/config/broadcast_filter (boolean)

    YANG Description: Convert all downstream broadcast ARP to unicast
only if Station is associated to the AP. Drop packet
if Station is not associated to the AP. All other
broadcast, except DHCP, is dropped by the AP.

DHCP Offers/ACKs are converted to Unicast, over-the-air.
    """
    return self.__broadcast_filter
      
  def _set_broadcast_filter(self, v, load=False):
    """
    Setter method for broadcast_filter, mapped from YANG variable /access_points/access_point/ssids/ssid/config/broadcast_filter (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_broadcast_filter is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_broadcast_filter() directly.

    YANG Description: Convert all downstream broadcast ARP to unicast
only if Station is associated to the AP. Drop packet
if Station is not associated to the AP. All other
broadcast, except DHCP, is dropped by the AP.

DHCP Offers/ACKs are converted to Unicast, over-the-air.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="broadcast-filter", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """broadcast_filter must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="broadcast-filter", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)""",
        })

    self.__broadcast_filter = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_broadcast_filter(self):
    self.__broadcast_filter = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="broadcast-filter", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)


  def _get_multicast_filter(self):
    """
    Getter method for multicast_filter, mapped from YANG variable /access_points/access_point/ssids/ssid/config/multicast_filter (boolean)

    YANG Description: Drop all downstream Multicast packets.
    """
    return self.__multicast_filter
      
  def _set_multicast_filter(self, v, load=False):
    """
    Setter method for multicast_filter, mapped from YANG variable /access_points/access_point/ssids/ssid/config/multicast_filter (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_multicast_filter is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_multicast_filter() directly.

    YANG Description: Drop all downstream Multicast packets.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="multicast-filter", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """multicast_filter must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="multicast-filter", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)""",
        })

    self.__multicast_filter = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_multicast_filter(self):
    self.__multicast_filter = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="multicast-filter", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)


  def _get_ipv6_ndp_filter(self):
    """
    Getter method for ipv6_ndp_filter, mapped from YANG variable /access_points/access_point/ssids/ssid/config/ipv6_ndp_filter (boolean)

    YANG Description: Neighbor Advertisements will be cached at the AP (or WLC)
and unicast in response to Neighbor Solicitations.

Router Advertisements, in response to a Router Solicitation
are converted to Unicast for over-the-air transmission.
    """
    return self.__ipv6_ndp_filter
      
  def _set_ipv6_ndp_filter(self, v, load=False):
    """
    Setter method for ipv6_ndp_filter, mapped from YANG variable /access_points/access_point/ssids/ssid/config/ipv6_ndp_filter (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ipv6_ndp_filter is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ipv6_ndp_filter() directly.

    YANG Description: Neighbor Advertisements will be cached at the AP (or WLC)
and unicast in response to Neighbor Solicitations.

Router Advertisements, in response to a Router Solicitation
are converted to Unicast for over-the-air transmission.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="ipv6-ndp-filter", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ipv6_ndp_filter must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="ipv6-ndp-filter", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)""",
        })

    self.__ipv6_ndp_filter = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ipv6_ndp_filter(self):
    self.__ipv6_ndp_filter = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="ipv6-ndp-filter", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)


  def _get_ipv6_ndp_filter_timer(self):
    """
    Getter method for ipv6_ndp_filter_timer, mapped from YANG variable /access_points/access_point/ssids/ssid/config/ipv6_ndp_filter_timer (uint16)

    YANG Description: Time, in seconds, the ndp-filter will cache
Neighbor Advertisements (NA).
    """
    return self.__ipv6_ndp_filter_timer
      
  def _set_ipv6_ndp_filter_timer(self, v, load=False):
    """
    Setter method for ipv6_ndp_filter_timer, mapped from YANG variable /access_points/access_point/ssids/ssid/config/ipv6_ndp_filter_timer (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ipv6_ndp_filter_timer is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ipv6_ndp_filter_timer() directly.

    YANG Description: Time, in seconds, the ndp-filter will cache
Neighbor Advertisements (NA).
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="ipv6-ndp-filter-timer", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ipv6_ndp_filter_timer must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="ipv6-ndp-filter-timer", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=True)""",
        })

    self.__ipv6_ndp_filter_timer = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ipv6_ndp_filter_timer(self):
    self.__ipv6_ndp_filter_timer = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="ipv6-ndp-filter-timer", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=True)


  def _get_station_isolation(self):
    """
    Getter method for station_isolation, mapped from YANG variable /access_points/access_point/ssids/ssid/config/station_isolation (boolean)

    YANG Description: Block Station peer to peer communication.
    """
    return self.__station_isolation
      
  def _set_station_isolation(self, v, load=False):
    """
    Setter method for station_isolation, mapped from YANG variable /access_points/access_point/ssids/ssid/config/station_isolation (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_station_isolation is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_station_isolation() directly.

    YANG Description: Block Station peer to peer communication.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="station-isolation", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """station_isolation must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="station-isolation", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)""",
        })

    self.__station_isolation = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_station_isolation(self):
    self.__station_isolation = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="station-isolation", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)


  def _get_opmode(self):
    """
    Getter method for opmode, mapped from YANG variable /access_points/access_point/ssids/ssid/config/opmode (enumeration)

    YANG Description: The type of Layer2 authentication in use.
    """
    return self.__opmode
      
  def _set_opmode(self, v, load=False):
    """
    Setter method for opmode, mapped from YANG variable /access_points/access_point/ssids/ssid/config/opmode (enumeration)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_opmode is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_opmode() directly.

    YANG Description: The type of Layer2 authentication in use.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OPEN': {}, 'WPA2_PERSONAL': {}, 'WPA2_ENTERPRISE': {}, 'ENHANCED_OPEN': {}, 'WPA3_SAE': {}, 'WPA3_ENTERPRISE': {}, 'WPA3_ENTERPRISE_192_BIT': {}},), is_leaf=True, yang_name="opmode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='enumeration', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """opmode must be of a type compatible with enumeration""",
          'defined-type': "openconfig-access-points:enumeration",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OPEN': {}, 'WPA2_PERSONAL': {}, 'WPA2_ENTERPRISE': {}, 'ENHANCED_OPEN': {}, 'WPA3_SAE': {}, 'WPA3_ENTERPRISE': {}, 'WPA3_ENTERPRISE_192_BIT': {}},), is_leaf=True, yang_name="opmode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='enumeration', is_config=True)""",
        })

    self.__opmode = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_opmode(self):
    self.__opmode = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OPEN': {}, 'WPA2_PERSONAL': {}, 'WPA2_ENTERPRISE': {}, 'ENHANCED_OPEN': {}, 'WPA3_SAE': {}, 'WPA3_ENTERPRISE': {}, 'WPA3_ENTERPRISE_192_BIT': {}},), is_leaf=True, yang_name="opmode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='enumeration', is_config=True)


  def _get_wpa2_psk(self):
    """
    Getter method for wpa2_psk, mapped from YANG variable /access_points/access_point/ssids/ssid/config/wpa2_psk (string)

    YANG Description: The passphrase used on this WPA2-Personal SSID.
    """
    return self.__wpa2_psk
      
  def _set_wpa2_psk(self, v, load=False):
    """
    Setter method for wpa2_psk, mapped from YANG variable /access_points/access_point/ssids/ssid/config/wpa2_psk (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_wpa2_psk is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_wpa2_psk() directly.

    YANG Description: The passphrase used on this WPA2-Personal SSID.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'length': ['8..63']}), is_leaf=True, yang_name="wpa2-psk", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """wpa2_psk must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'length': ['8..63']}), is_leaf=True, yang_name="wpa2-psk", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=True)""",
        })

    self.__wpa2_psk = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_wpa2_psk(self):
    self.__wpa2_psk = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'length': ['8..63']}), is_leaf=True, yang_name="wpa2-psk", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=True)


  def _get_wpa3_psk(self):
    """
    Getter method for wpa3_psk, mapped from YANG variable /access_points/access_point/ssids/ssid/config/wpa3_psk (string)

    YANG Description: The passphrase used on this WPA3-SAE SSID.
    """
    return self.__wpa3_psk
      
  def _set_wpa3_psk(self, v, load=False):
    """
    Setter method for wpa3_psk, mapped from YANG variable /access_points/access_point/ssids/ssid/config/wpa3_psk (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_wpa3_psk is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_wpa3_psk() directly.

    YANG Description: The passphrase used on this WPA3-SAE SSID.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'length': ['8..63']}), is_leaf=True, yang_name="wpa3-psk", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """wpa3_psk must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'length': ['8..63']}), is_leaf=True, yang_name="wpa3-psk", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=True)""",
        })

    self.__wpa3_psk = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_wpa3_psk(self):
    self.__wpa3_psk = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'length': ['8..63']}), is_leaf=True, yang_name="wpa3-psk", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=True)


  def _get_server_group(self):
    """
    Getter method for server_group, mapped from YANG variable /access_points/access_point/ssids/ssid/config/server_group (string)

    YANG Description: Specifies the RADIUS server-group to be used,
as defined in the openconfig-aaa.yang model.

Including WPA2_PERSONAL and WPA3_SAE as they can be accompanied by
MAB.
    """
    return self.__server_group
      
  def _set_server_group(self, v, load=False):
    """
    Setter method for server_group, mapped from YANG variable /access_points/access_point/ssids/ssid/config/server_group (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_server_group is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_server_group() directly.

    YANG Description: Specifies the RADIUS server-group to be used,
as defined in the openconfig-aaa.yang model.

Including WPA2_PERSONAL and WPA3_SAE as they can be accompanied by
MAB.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="server-group", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """server_group must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="server-group", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=True)""",
        })

    self.__server_group = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_server_group(self):
    self.__server_group = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="server-group", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=True)


  def _get_dva(self):
    """
    Getter method for dva, mapped from YANG variable /access_points/access_point/ssids/ssid/config/dva (boolean)

    YANG Description: Enable/disable Dynamic VLAN Assignment,
using 'Tunnel-Private-Group-Id' RADIUS attribute.
    """
    return self.__dva
      
  def _set_dva(self, v, load=False):
    """
    Setter method for dva, mapped from YANG variable /access_points/access_point/ssids/ssid/config/dva (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dva is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dva() directly.

    YANG Description: Enable/disable Dynamic VLAN Assignment,
using 'Tunnel-Private-Group-Id' RADIUS attribute.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="dva", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dva must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dva", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)""",
        })

    self.__dva = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dva(self):
    self.__dva = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dva", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)


  def _get_dhcp_required(self):
    """
    Getter method for dhcp_required, mapped from YANG variable /access_points/access_point/ssids/ssid/config/dhcp_required (boolean)

    YANG Description: Allow a Station to access the network only if
a DHCP exchange has occurred.
    """
    return self.__dhcp_required
      
  def _set_dhcp_required(self, v, load=False):
    """
    Setter method for dhcp_required, mapped from YANG variable /access_points/access_point/ssids/ssid/config/dhcp_required (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dhcp_required is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dhcp_required() directly.

    YANG Description: Allow a Station to access the network only if
a DHCP exchange has occurred.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="dhcp-required", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dhcp_required must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dhcp-required", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)""",
        })

    self.__dhcp_required = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dhcp_required(self):
    self.__dhcp_required = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dhcp-required", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)


  def _get_qbss_load(self):
    """
    Getter method for qbss_load, mapped from YANG variable /access_points/access_point/ssids/ssid/config/qbss_load (boolean)

    YANG Description: Advertisement of the QBSS Load Information Element.
    """
    return self.__qbss_load
      
  def _set_qbss_load(self, v, load=False):
    """
    Setter method for qbss_load, mapped from YANG variable /access_points/access_point/ssids/ssid/config/qbss_load (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_qbss_load is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_qbss_load() directly.

    YANG Description: Advertisement of the QBSS Load Information Element.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="qbss-load", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """qbss_load must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="qbss-load", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)""",
        })

    self.__qbss_load = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_qbss_load(self):
    self.__qbss_load = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="qbss-load", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)


  def _get_advertise_apname(self):
    """
    Getter method for advertise_apname, mapped from YANG variable /access_points/access_point/ssids/ssid/config/advertise_apname (boolean)

    YANG Description: Advertise the AP hostname in Beacon and Probe Response frames.
    """
    return self.__advertise_apname
      
  def _set_advertise_apname(self, v, load=False):
    """
    Setter method for advertise_apname, mapped from YANG variable /access_points/access_point/ssids/ssid/config/advertise_apname (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_advertise_apname is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_advertise_apname() directly.

    YANG Description: Advertise the AP hostname in Beacon and Probe Response frames.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="advertise-apname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """advertise_apname must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="advertise-apname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)""",
        })

    self.__advertise_apname = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_advertise_apname(self):
    self.__advertise_apname = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="advertise-apname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)


  def _get_csa(self):
    """
    Getter method for csa, mapped from YANG variable /access_points/access_point/ssids/ssid/config/csa (boolean)

    YANG Description: Enable/Disable 802.11h channel-switch-announcement.
    """
    return self.__csa
      
  def _set_csa(self, v, load=False):
    """
    Setter method for csa, mapped from YANG variable /access_points/access_point/ssids/ssid/config/csa (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_csa is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_csa() directly.

    YANG Description: Enable/Disable 802.11h channel-switch-announcement.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="csa", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """csa must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="csa", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)""",
        })

    self.__csa = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_csa(self):
    self.__csa = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="csa", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)


  def _get_ptk_timeout(self):
    """
    Getter method for ptk_timeout, mapped from YANG variable /access_points/access_point/ssids/ssid/config/ptk_timeout (uint16)

    YANG Description: Time, in seconds, for the Pairwise Transient Key.
    """
    return self.__ptk_timeout
      
  def _set_ptk_timeout(self, v, load=False):
    """
    Setter method for ptk_timeout, mapped from YANG variable /access_points/access_point/ssids/ssid/config/ptk_timeout (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ptk_timeout is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ptk_timeout() directly.

    YANG Description: Time, in seconds, for the Pairwise Transient Key.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="ptk-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ptk_timeout must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="ptk-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=True)""",
        })

    self.__ptk_timeout = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ptk_timeout(self):
    self.__ptk_timeout = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="ptk-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=True)


  def _get_gtk_timeout(self):
    """
    Getter method for gtk_timeout, mapped from YANG variable /access_points/access_point/ssids/ssid/config/gtk_timeout (uint16)

    YANG Description: TTL for the Group Temporal Key.
    """
    return self.__gtk_timeout
      
  def _set_gtk_timeout(self, v, load=False):
    """
    Setter method for gtk_timeout, mapped from YANG variable /access_points/access_point/ssids/ssid/config/gtk_timeout (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_gtk_timeout is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_gtk_timeout() directly.

    YANG Description: TTL for the Group Temporal Key.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="gtk-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """gtk_timeout must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="gtk-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=True)""",
        })

    self.__gtk_timeout = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_gtk_timeout(self):
    self.__gtk_timeout = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="gtk-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=True)


  def _get_dot11k(self):
    """
    Getter method for dot11k, mapped from YANG variable /access_points/access_point/ssids/ssid/config/dot11k (boolean)

    YANG Description: 802.11k neighbor-list enabled/disabled.
    """
    return self.__dot11k
      
  def _set_dot11k(self, v, load=False):
    """
    Setter method for dot11k, mapped from YANG variable /access_points/access_point/ssids/ssid/config/dot11k (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dot11k is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dot11k() directly.

    YANG Description: 802.11k neighbor-list enabled/disabled.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="dot11k", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dot11k must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dot11k", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)""",
        })

    self.__dot11k = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dot11k(self):
    self.__dot11k = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dot11k", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)


  def _get_okc(self):
    """
    Getter method for okc, mapped from YANG variable /access_points/access_point/ssids/ssid/config/okc (boolean)

    YANG Description: Enable/disable Opportunistic Key Caching.
    """
    return self.__okc
      
  def _set_okc(self, v, load=False):
    """
    Setter method for okc, mapped from YANG variable /access_points/access_point/ssids/ssid/config/okc (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_okc is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_okc() directly.

    YANG Description: Enable/disable Opportunistic Key Caching.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="okc", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """okc must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="okc", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)""",
        })

    self.__okc = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_okc(self):
    self.__okc = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="okc", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)


  def _get_mfp(self):
    """
    Getter method for mfp, mapped from YANG variable /access_points/access_point/ssids/ssid/config/mfp (boolean)

    YANG Description: Management Frame Protection is required for WPA3 and OWE.
    """
    return self.__mfp
      
  def _set_mfp(self, v, load=False):
    """
    Setter method for mfp, mapped from YANG variable /access_points/access_point/ssids/ssid/config/mfp (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mfp is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mfp() directly.

    YANG Description: Management Frame Protection is required for WPA3 and OWE.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="mfp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mfp must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="mfp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)""",
        })

    self.__mfp = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mfp(self):
    self.__mfp = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="mfp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)

  name = __builtin__.property(_get_name, _set_name)
  enabled = __builtin__.property(_get_enabled, _set_enabled)
  hidden = __builtin__.property(_get_hidden, _set_hidden)
  default_vlan = __builtin__.property(_get_default_vlan, _set_default_vlan)
  vlan_list = __builtin__.property(_get_vlan_list, _set_vlan_list)
  operating_frequency = __builtin__.property(_get_operating_frequency, _set_operating_frequency)
  basic_data_rates_2g = __builtin__.property(_get_basic_data_rates_2g, _set_basic_data_rates_2g)
  supported_data_rates_2g = __builtin__.property(_get_supported_data_rates_2g, _set_supported_data_rates_2g)
  basic_data_rates_5g = __builtin__.property(_get_basic_data_rates_5g, _set_basic_data_rates_5g)
  supported_data_rates_5g = __builtin__.property(_get_supported_data_rates_5g, _set_supported_data_rates_5g)
  basic_data_rates_6g = __builtin__.property(_get_basic_data_rates_6g, _set_basic_data_rates_6g)
  supported_data_rates_6g = __builtin__.property(_get_supported_data_rates_6g, _set_supported_data_rates_6g)
  broadcast_filter = __builtin__.property(_get_broadcast_filter, _set_broadcast_filter)
  multicast_filter = __builtin__.property(_get_multicast_filter, _set_multicast_filter)
  ipv6_ndp_filter = __builtin__.property(_get_ipv6_ndp_filter, _set_ipv6_ndp_filter)
  ipv6_ndp_filter_timer = __builtin__.property(_get_ipv6_ndp_filter_timer, _set_ipv6_ndp_filter_timer)
  station_isolation = __builtin__.property(_get_station_isolation, _set_station_isolation)
  opmode = __builtin__.property(_get_opmode, _set_opmode)
  wpa2_psk = __builtin__.property(_get_wpa2_psk, _set_wpa2_psk)
  wpa3_psk = __builtin__.property(_get_wpa3_psk, _set_wpa3_psk)
  server_group = __builtin__.property(_get_server_group, _set_server_group)
  dva = __builtin__.property(_get_dva, _set_dva)
  dhcp_required = __builtin__.property(_get_dhcp_required, _set_dhcp_required)
  qbss_load = __builtin__.property(_get_qbss_load, _set_qbss_load)
  advertise_apname = __builtin__.property(_get_advertise_apname, _set_advertise_apname)
  csa = __builtin__.property(_get_csa, _set_csa)
  ptk_timeout = __builtin__.property(_get_ptk_timeout, _set_ptk_timeout)
  gtk_timeout = __builtin__.property(_get_gtk_timeout, _set_gtk_timeout)
  dot11k = __builtin__.property(_get_dot11k, _set_dot11k)
  okc = __builtin__.property(_get_okc, _set_okc)
  mfp = __builtin__.property(_get_mfp, _set_mfp)


  _pyangbind_elements = OrderedDict([('name', name), ('enabled', enabled), ('hidden', hidden), ('default_vlan', default_vlan), ('vlan_list', vlan_list), ('operating_frequency', operating_frequency), ('basic_data_rates_2g', basic_data_rates_2g), ('supported_data_rates_2g', supported_data_rates_2g), ('basic_data_rates_5g', basic_data_rates_5g), ('supported_data_rates_5g', supported_data_rates_5g), ('basic_data_rates_6g', basic_data_rates_6g), ('supported_data_rates_6g', supported_data_rates_6g), ('broadcast_filter', broadcast_filter), ('multicast_filter', multicast_filter), ('ipv6_ndp_filter', ipv6_ndp_filter), ('ipv6_ndp_filter_timer', ipv6_ndp_filter_timer), ('station_isolation', station_isolation), ('opmode', opmode), ('wpa2_psk', wpa2_psk), ('wpa3_psk', wpa3_psk), ('server_group', server_group), ('dva', dva), ('dhcp_required', dhcp_required), ('qbss_load', qbss_load), ('advertise_apname', advertise_apname), ('csa', csa), ('ptk_timeout', ptk_timeout), ('gtk_timeout', gtk_timeout), ('dot11k', dot11k), ('okc', okc), ('mfp', mfp), ])


class yc_state_openconfig_access_points__access_points_access_point_ssids_ssid_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/ssids/ssid/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Operational state data at the SSID level
  """
  __slots__ = ('_path_helper', '_extmethods', '__name','__enabled','__hidden','__default_vlan','__vlan_list','__operating_frequency','__basic_data_rates_2g','__supported_data_rates_2g','__basic_data_rates_5g','__supported_data_rates_5g','__basic_data_rates_6g','__supported_data_rates_6g','__broadcast_filter','__multicast_filter','__ipv6_ndp_filter','__ipv6_ndp_filter_timer','__station_isolation','__opmode','__wpa2_psk','__wpa3_psk','__server_group','__dva','__dhcp_required','__qbss_load','__advertise_apname','__csa','__ptk_timeout','__gtk_timeout','__dot11k','__okc','__mfp',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)
    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    self.__hidden = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="hidden", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    self.__default_vlan = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}), is_leaf=True, yang_name="default-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-vlan-types:vlan-id', is_config=False)
    self.__vlan_list = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']})), is_leaf=False, yang_name="vlan-list", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-vlan-types:vlan-id', is_config=False)
    self.__operating_frequency = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},), default=six.text_type("oc-wifi-types:FREQ_2_5_GHZ"), is_leaf=True, yang_name="operating-frequency", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)
    self.__basic_data_rates_2g = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="basic-data-rates-2g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)
    self.__supported_data_rates_2g = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="supported-data-rates-2g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)
    self.__basic_data_rates_5g = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="basic-data-rates-5g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)
    self.__supported_data_rates_5g = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="supported-data-rates-5g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)
    self.__basic_data_rates_6g = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="basic-data-rates-6g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)
    self.__supported_data_rates_6g = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="supported-data-rates-6g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)
    self.__broadcast_filter = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="broadcast-filter", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    self.__multicast_filter = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="multicast-filter", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    self.__ipv6_ndp_filter = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="ipv6-ndp-filter", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    self.__ipv6_ndp_filter_timer = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="ipv6-ndp-filter-timer", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)
    self.__station_isolation = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="station-isolation", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    self.__opmode = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OPEN': {}, 'WPA2_PERSONAL': {}, 'WPA2_ENTERPRISE': {}, 'ENHANCED_OPEN': {}, 'WPA3_SAE': {}, 'WPA3_ENTERPRISE': {}, 'WPA3_ENTERPRISE_192_BIT': {}},), is_leaf=True, yang_name="opmode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='enumeration', is_config=False)
    self.__wpa2_psk = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'length': ['8..63']}), is_leaf=True, yang_name="wpa2-psk", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)
    self.__wpa3_psk = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'length': ['8..63']}), is_leaf=True, yang_name="wpa3-psk", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)
    self.__server_group = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="server-group", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)
    self.__dva = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dva", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    self.__dhcp_required = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dhcp-required", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    self.__qbss_load = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="qbss-load", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    self.__advertise_apname = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="advertise-apname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    self.__csa = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="csa", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    self.__ptk_timeout = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="ptk-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)
    self.__gtk_timeout = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="gtk-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)
    self.__dot11k = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dot11k", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    self.__okc = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="okc", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    self.__mfp = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="mfp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', 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 ['access-points', 'access-point', 'ssids', 'ssid', 'state']

  def _get_name(self):
    """
    Getter method for name, mapped from YANG variable /access_points/access_point/ssids/ssid/state/name (string)

    YANG Description: The name of the SSID.
    """
    return self.__name
      
  def _set_name(self, v, load=False):
    """
    Setter method for name, mapped from YANG variable /access_points/access_point/ssids/ssid/state/name (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_name is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_name() directly.

    YANG Description: The name of the SSID.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """name must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)""",
        })

    self.__name = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_name(self):
    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)


  def _get_enabled(self):
    """
    Getter method for enabled, mapped from YANG variable /access_points/access_point/ssids/ssid/state/enabled (boolean)

    YANG Description: The desired operational state (up/down) of this SSID.
    """
    return self.__enabled
      
  def _set_enabled(self, v, load=False):
    """
    Setter method for enabled, mapped from YANG variable /access_points/access_point/ssids/ssid/state/enabled (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_enabled is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_enabled() directly.

    YANG Description: The desired operational state (up/down) of this SSID.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """enabled must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)""",
        })

    self.__enabled = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_enabled(self):
    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)


  def _get_hidden(self):
    """
    Getter method for hidden, mapped from YANG variable /access_points/access_point/ssids/ssid/state/hidden (boolean)

    YANG Description: Whether this SSID IE is hidden within Beacons.
    """
    return self.__hidden
      
  def _set_hidden(self, v, load=False):
    """
    Setter method for hidden, mapped from YANG variable /access_points/access_point/ssids/ssid/state/hidden (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_hidden is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_hidden() directly.

    YANG Description: Whether this SSID IE is hidden within Beacons.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="hidden", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """hidden must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="hidden", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)""",
        })

    self.__hidden = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_hidden(self):
    self.__hidden = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="hidden", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)


  def _get_default_vlan(self):
    """
    Getter method for default_vlan, mapped from YANG variable /access_points/access_point/ssids/ssid/state/default_vlan (oc-vlan-types:vlan-id)

    YANG Description: Default VLAN tag used by the SSID. When unspecified, SSID
defaults to untagged. If DVA enabled and RADIUS returns a
VLAN not present in 'vlan-list', or RADIUS returns no VLAN
(Tunnel-Private-Group-Id), this VLAN will be used. If DVA
not enabled, all packets are tagged with this VLAN.
    """
    return self.__default_vlan
      
  def _set_default_vlan(self, v, load=False):
    """
    Setter method for default_vlan, mapped from YANG variable /access_points/access_point/ssids/ssid/state/default_vlan (oc-vlan-types:vlan-id)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_default_vlan is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_default_vlan() directly.

    YANG Description: Default VLAN tag used by the SSID. When unspecified, SSID
defaults to untagged. If DVA enabled and RADIUS returns a
VLAN not present in 'vlan-list', or RADIUS returns no VLAN
(Tunnel-Private-Group-Id), this VLAN will be used. If DVA
not enabled, all packets are tagged with this VLAN.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}), is_leaf=True, yang_name="default-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-vlan-types:vlan-id', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """default_vlan must be of a type compatible with oc-vlan-types:vlan-id""",
          'defined-type': "oc-vlan-types:vlan-id",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}), is_leaf=True, yang_name="default-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-vlan-types:vlan-id', is_config=False)""",
        })

    self.__default_vlan = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_default_vlan(self):
    self.__default_vlan = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}), is_leaf=True, yang_name="default-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-vlan-types:vlan-id', is_config=False)


  def _get_vlan_list(self):
    """
    Getter method for vlan_list, mapped from YANG variable /access_points/access_point/ssids/ssid/state/vlan_list (oc-vlan-types:vlan-id)

    YANG Description: List of VLANs allowed on the SSID, if DVA is enabled. Note,
if DVA enabled and RADIUS returns no VLAN or a VLAN outside
of this list, the SSID will be tagged with the value of
vlan-id (or untagged if 'vlan-id' not configured).
    """
    return self.__vlan_list
      
  def _set_vlan_list(self, v, load=False):
    """
    Setter method for vlan_list, mapped from YANG variable /access_points/access_point/ssids/ssid/state/vlan_list (oc-vlan-types:vlan-id)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_vlan_list is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_vlan_list() directly.

    YANG Description: List of VLANs allowed on the SSID, if DVA is enabled. Note,
if DVA enabled and RADIUS returns no VLAN or a VLAN outside
of this list, the SSID will be tagged with the value of
vlan-id (or untagged if 'vlan-id' not configured).
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']})), is_leaf=False, yang_name="vlan-list", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-vlan-types:vlan-id', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """vlan_list must be of a type compatible with oc-vlan-types:vlan-id""",
          'defined-type': "oc-vlan-types:vlan-id",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']})), is_leaf=False, yang_name="vlan-list", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-vlan-types:vlan-id', is_config=False)""",
        })

    self.__vlan_list = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_vlan_list(self):
    self.__vlan_list = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']})), is_leaf=False, yang_name="vlan-list", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-vlan-types:vlan-id', is_config=False)


  def _get_operating_frequency(self):
    """
    Getter method for operating_frequency, mapped from YANG variable /access_points/access_point/ssids/ssid/state/operating_frequency (identityref)

    YANG Description: Operating frequency of this SSID. When none specified, the
default is dual-band 2.4 and 5 GHz.
    """
    return self.__operating_frequency
      
  def _set_operating_frequency(self, v, load=False):
    """
    Setter method for operating_frequency, mapped from YANG variable /access_points/access_point/ssids/ssid/state/operating_frequency (identityref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_operating_frequency is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_operating_frequency() directly.

    YANG Description: Operating frequency of this SSID. When none specified, the
default is dual-band 2.4 and 5 GHz.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},), default=six.text_type("oc-wifi-types:FREQ_2_5_GHZ"), is_leaf=True, yang_name="operating-frequency", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """operating_frequency must be of a type compatible with identityref""",
          'defined-type': "openconfig-access-points:identityref",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},), default=six.text_type("oc-wifi-types:FREQ_2_5_GHZ"), is_leaf=True, yang_name="operating-frequency", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)""",
        })

    self.__operating_frequency = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_operating_frequency(self):
    self.__operating_frequency = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},), default=six.text_type("oc-wifi-types:FREQ_2_5_GHZ"), is_leaf=True, yang_name="operating-frequency", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)


  def _get_basic_data_rates_2g(self):
    """
    Getter method for basic_data_rates_2g, mapped from YANG variable /access_points/access_point/ssids/ssid/state/basic_data_rates_2g (identityref)

    YANG Description: 2.4GHz Basic data-rates for the SSID.
    """
    return self.__basic_data_rates_2g
      
  def _set_basic_data_rates_2g(self, v, load=False):
    """
    Setter method for basic_data_rates_2g, mapped from YANG variable /access_points/access_point/ssids/ssid/state/basic_data_rates_2g (identityref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_basic_data_rates_2g is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_basic_data_rates_2g() directly.

    YANG Description: 2.4GHz Basic data-rates for the SSID.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="basic-data-rates-2g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """basic_data_rates_2g must be of a type compatible with identityref""",
          'defined-type': "openconfig-access-points:identityref",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="basic-data-rates-2g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)""",
        })

    self.__basic_data_rates_2g = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_basic_data_rates_2g(self):
    self.__basic_data_rates_2g = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="basic-data-rates-2g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)


  def _get_supported_data_rates_2g(self):
    """
    Getter method for supported_data_rates_2g, mapped from YANG variable /access_points/access_point/ssids/ssid/state/supported_data_rates_2g (identityref)

    YANG Description: 2.4GHz Supported data-rates for the SSID.
    """
    return self.__supported_data_rates_2g
      
  def _set_supported_data_rates_2g(self, v, load=False):
    """
    Setter method for supported_data_rates_2g, mapped from YANG variable /access_points/access_point/ssids/ssid/state/supported_data_rates_2g (identityref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_supported_data_rates_2g is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_supported_data_rates_2g() directly.

    YANG Description: 2.4GHz Supported data-rates for the SSID.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="supported-data-rates-2g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """supported_data_rates_2g must be of a type compatible with identityref""",
          'defined-type': "openconfig-access-points:identityref",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="supported-data-rates-2g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)""",
        })

    self.__supported_data_rates_2g = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_supported_data_rates_2g(self):
    self.__supported_data_rates_2g = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="supported-data-rates-2g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)


  def _get_basic_data_rates_5g(self):
    """
    Getter method for basic_data_rates_5g, mapped from YANG variable /access_points/access_point/ssids/ssid/state/basic_data_rates_5g (identityref)

    YANG Description: 5GHz Basic data-rates for the SSID.
    """
    return self.__basic_data_rates_5g
      
  def _set_basic_data_rates_5g(self, v, load=False):
    """
    Setter method for basic_data_rates_5g, mapped from YANG variable /access_points/access_point/ssids/ssid/state/basic_data_rates_5g (identityref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_basic_data_rates_5g is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_basic_data_rates_5g() directly.

    YANG Description: 5GHz Basic data-rates for the SSID.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="basic-data-rates-5g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """basic_data_rates_5g must be of a type compatible with identityref""",
          'defined-type': "openconfig-access-points:identityref",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="basic-data-rates-5g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)""",
        })

    self.__basic_data_rates_5g = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_basic_data_rates_5g(self):
    self.__basic_data_rates_5g = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="basic-data-rates-5g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)


  def _get_supported_data_rates_5g(self):
    """
    Getter method for supported_data_rates_5g, mapped from YANG variable /access_points/access_point/ssids/ssid/state/supported_data_rates_5g (identityref)

    YANG Description: 5GHz Supported data-rates for the SSID.
    """
    return self.__supported_data_rates_5g
      
  def _set_supported_data_rates_5g(self, v, load=False):
    """
    Setter method for supported_data_rates_5g, mapped from YANG variable /access_points/access_point/ssids/ssid/state/supported_data_rates_5g (identityref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_supported_data_rates_5g is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_supported_data_rates_5g() directly.

    YANG Description: 5GHz Supported data-rates for the SSID.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="supported-data-rates-5g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """supported_data_rates_5g must be of a type compatible with identityref""",
          'defined-type': "openconfig-access-points:identityref",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="supported-data-rates-5g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)""",
        })

    self.__supported_data_rates_5g = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_supported_data_rates_5g(self):
    self.__supported_data_rates_5g = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="supported-data-rates-5g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)


  def _get_basic_data_rates_6g(self):
    """
    Getter method for basic_data_rates_6g, mapped from YANG variable /access_points/access_point/ssids/ssid/state/basic_data_rates_6g (identityref)

    YANG Description: 6GHz Basic data-rates for the SSID.
    """
    return self.__basic_data_rates_6g
      
  def _set_basic_data_rates_6g(self, v, load=False):
    """
    Setter method for basic_data_rates_6g, mapped from YANG variable /access_points/access_point/ssids/ssid/state/basic_data_rates_6g (identityref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_basic_data_rates_6g is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_basic_data_rates_6g() directly.

    YANG Description: 6GHz Basic data-rates for the SSID.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="basic-data-rates-6g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """basic_data_rates_6g must be of a type compatible with identityref""",
          'defined-type': "openconfig-access-points:identityref",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="basic-data-rates-6g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)""",
        })

    self.__basic_data_rates_6g = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_basic_data_rates_6g(self):
    self.__basic_data_rates_6g = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="basic-data-rates-6g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)


  def _get_supported_data_rates_6g(self):
    """
    Getter method for supported_data_rates_6g, mapped from YANG variable /access_points/access_point/ssids/ssid/state/supported_data_rates_6g (identityref)

    YANG Description: 6GHz Supported data-rates for the SSID.
    """
    return self.__supported_data_rates_6g
      
  def _set_supported_data_rates_6g(self, v, load=False):
    """
    Setter method for supported_data_rates_6g, mapped from YANG variable /access_points/access_point/ssids/ssid/state/supported_data_rates_6g (identityref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_supported_data_rates_6g is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_supported_data_rates_6g() directly.

    YANG Description: 6GHz Supported data-rates for the SSID.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="supported-data-rates-6g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """supported_data_rates_6g must be of a type compatible with identityref""",
          'defined-type': "openconfig-access-points:identityref",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="supported-data-rates-6g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)""",
        })

    self.__supported_data_rates_6g = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_supported_data_rates_6g(self):
    self.__supported_data_rates_6g = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="supported-data-rates-6g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)


  def _get_broadcast_filter(self):
    """
    Getter method for broadcast_filter, mapped from YANG variable /access_points/access_point/ssids/ssid/state/broadcast_filter (boolean)

    YANG Description: Convert all downstream broadcast ARP to unicast
only if Station is associated to the AP. Drop packet
if Station is not associated to the AP. All other
broadcast, except DHCP, is dropped by the AP.

DHCP Offers/ACKs are converted to Unicast, over-the-air.
    """
    return self.__broadcast_filter
      
  def _set_broadcast_filter(self, v, load=False):
    """
    Setter method for broadcast_filter, mapped from YANG variable /access_points/access_point/ssids/ssid/state/broadcast_filter (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_broadcast_filter is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_broadcast_filter() directly.

    YANG Description: Convert all downstream broadcast ARP to unicast
only if Station is associated to the AP. Drop packet
if Station is not associated to the AP. All other
broadcast, except DHCP, is dropped by the AP.

DHCP Offers/ACKs are converted to Unicast, over-the-air.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="broadcast-filter", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """broadcast_filter must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="broadcast-filter", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)""",
        })

    self.__broadcast_filter = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_broadcast_filter(self):
    self.__broadcast_filter = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="broadcast-filter", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)


  def _get_multicast_filter(self):
    """
    Getter method for multicast_filter, mapped from YANG variable /access_points/access_point/ssids/ssid/state/multicast_filter (boolean)

    YANG Description: Drop all downstream Multicast packets.
    """
    return self.__multicast_filter
      
  def _set_multicast_filter(self, v, load=False):
    """
    Setter method for multicast_filter, mapped from YANG variable /access_points/access_point/ssids/ssid/state/multicast_filter (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_multicast_filter is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_multicast_filter() directly.

    YANG Description: Drop all downstream Multicast packets.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="multicast-filter", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """multicast_filter must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="multicast-filter", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)""",
        })

    self.__multicast_filter = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_multicast_filter(self):
    self.__multicast_filter = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="multicast-filter", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)


  def _get_ipv6_ndp_filter(self):
    """
    Getter method for ipv6_ndp_filter, mapped from YANG variable /access_points/access_point/ssids/ssid/state/ipv6_ndp_filter (boolean)

    YANG Description: Neighbor Advertisements will be cached at the AP (or WLC)
and unicast in response to Neighbor Solicitations.

Router Advertisements, in response to a Router Solicitation
are converted to Unicast for over-the-air transmission.
    """
    return self.__ipv6_ndp_filter
      
  def _set_ipv6_ndp_filter(self, v, load=False):
    """
    Setter method for ipv6_ndp_filter, mapped from YANG variable /access_points/access_point/ssids/ssid/state/ipv6_ndp_filter (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ipv6_ndp_filter is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ipv6_ndp_filter() directly.

    YANG Description: Neighbor Advertisements will be cached at the AP (or WLC)
and unicast in response to Neighbor Solicitations.

Router Advertisements, in response to a Router Solicitation
are converted to Unicast for over-the-air transmission.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="ipv6-ndp-filter", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ipv6_ndp_filter must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="ipv6-ndp-filter", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)""",
        })

    self.__ipv6_ndp_filter = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ipv6_ndp_filter(self):
    self.__ipv6_ndp_filter = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="ipv6-ndp-filter", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)


  def _get_ipv6_ndp_filter_timer(self):
    """
    Getter method for ipv6_ndp_filter_timer, mapped from YANG variable /access_points/access_point/ssids/ssid/state/ipv6_ndp_filter_timer (uint16)

    YANG Description: Time, in seconds, the ndp-filter will cache
Neighbor Advertisements (NA).
    """
    return self.__ipv6_ndp_filter_timer
      
  def _set_ipv6_ndp_filter_timer(self, v, load=False):
    """
    Setter method for ipv6_ndp_filter_timer, mapped from YANG variable /access_points/access_point/ssids/ssid/state/ipv6_ndp_filter_timer (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ipv6_ndp_filter_timer is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ipv6_ndp_filter_timer() directly.

    YANG Description: Time, in seconds, the ndp-filter will cache
Neighbor Advertisements (NA).
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="ipv6-ndp-filter-timer", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ipv6_ndp_filter_timer must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="ipv6-ndp-filter-timer", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)""",
        })

    self.__ipv6_ndp_filter_timer = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ipv6_ndp_filter_timer(self):
    self.__ipv6_ndp_filter_timer = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="ipv6-ndp-filter-timer", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)


  def _get_station_isolation(self):
    """
    Getter method for station_isolation, mapped from YANG variable /access_points/access_point/ssids/ssid/state/station_isolation (boolean)

    YANG Description: Block Station peer to peer communication.
    """
    return self.__station_isolation
      
  def _set_station_isolation(self, v, load=False):
    """
    Setter method for station_isolation, mapped from YANG variable /access_points/access_point/ssids/ssid/state/station_isolation (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_station_isolation is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_station_isolation() directly.

    YANG Description: Block Station peer to peer communication.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="station-isolation", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """station_isolation must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="station-isolation", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)""",
        })

    self.__station_isolation = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_station_isolation(self):
    self.__station_isolation = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="station-isolation", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)


  def _get_opmode(self):
    """
    Getter method for opmode, mapped from YANG variable /access_points/access_point/ssids/ssid/state/opmode (enumeration)

    YANG Description: The type of Layer2 authentication in use.
    """
    return self.__opmode
      
  def _set_opmode(self, v, load=False):
    """
    Setter method for opmode, mapped from YANG variable /access_points/access_point/ssids/ssid/state/opmode (enumeration)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_opmode is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_opmode() directly.

    YANG Description: The type of Layer2 authentication in use.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OPEN': {}, 'WPA2_PERSONAL': {}, 'WPA2_ENTERPRISE': {}, 'ENHANCED_OPEN': {}, 'WPA3_SAE': {}, 'WPA3_ENTERPRISE': {}, 'WPA3_ENTERPRISE_192_BIT': {}},), is_leaf=True, yang_name="opmode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='enumeration', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """opmode must be of a type compatible with enumeration""",
          'defined-type': "openconfig-access-points:enumeration",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OPEN': {}, 'WPA2_PERSONAL': {}, 'WPA2_ENTERPRISE': {}, 'ENHANCED_OPEN': {}, 'WPA3_SAE': {}, 'WPA3_ENTERPRISE': {}, 'WPA3_ENTERPRISE_192_BIT': {}},), is_leaf=True, yang_name="opmode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='enumeration', is_config=False)""",
        })

    self.__opmode = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_opmode(self):
    self.__opmode = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OPEN': {}, 'WPA2_PERSONAL': {}, 'WPA2_ENTERPRISE': {}, 'ENHANCED_OPEN': {}, 'WPA3_SAE': {}, 'WPA3_ENTERPRISE': {}, 'WPA3_ENTERPRISE_192_BIT': {}},), is_leaf=True, yang_name="opmode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='enumeration', is_config=False)


  def _get_wpa2_psk(self):
    """
    Getter method for wpa2_psk, mapped from YANG variable /access_points/access_point/ssids/ssid/state/wpa2_psk (string)

    YANG Description: The passphrase used on this WPA2-Personal SSID.
    """
    return self.__wpa2_psk
      
  def _set_wpa2_psk(self, v, load=False):
    """
    Setter method for wpa2_psk, mapped from YANG variable /access_points/access_point/ssids/ssid/state/wpa2_psk (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_wpa2_psk is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_wpa2_psk() directly.

    YANG Description: The passphrase used on this WPA2-Personal SSID.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'length': ['8..63']}), is_leaf=True, yang_name="wpa2-psk", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """wpa2_psk must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'length': ['8..63']}), is_leaf=True, yang_name="wpa2-psk", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)""",
        })

    self.__wpa2_psk = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_wpa2_psk(self):
    self.__wpa2_psk = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'length': ['8..63']}), is_leaf=True, yang_name="wpa2-psk", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)


  def _get_wpa3_psk(self):
    """
    Getter method for wpa3_psk, mapped from YANG variable /access_points/access_point/ssids/ssid/state/wpa3_psk (string)

    YANG Description: The passphrase used on this WPA3-SAE SSID.
    """
    return self.__wpa3_psk
      
  def _set_wpa3_psk(self, v, load=False):
    """
    Setter method for wpa3_psk, mapped from YANG variable /access_points/access_point/ssids/ssid/state/wpa3_psk (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_wpa3_psk is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_wpa3_psk() directly.

    YANG Description: The passphrase used on this WPA3-SAE SSID.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'length': ['8..63']}), is_leaf=True, yang_name="wpa3-psk", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """wpa3_psk must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'length': ['8..63']}), is_leaf=True, yang_name="wpa3-psk", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)""",
        })

    self.__wpa3_psk = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_wpa3_psk(self):
    self.__wpa3_psk = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'length': ['8..63']}), is_leaf=True, yang_name="wpa3-psk", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)


  def _get_server_group(self):
    """
    Getter method for server_group, mapped from YANG variable /access_points/access_point/ssids/ssid/state/server_group (string)

    YANG Description: Specifies the RADIUS server-group to be used,
as defined in the openconfig-aaa.yang model.

Including WPA2_PERSONAL and WPA3_SAE as they can be accompanied by
MAB.
    """
    return self.__server_group
      
  def _set_server_group(self, v, load=False):
    """
    Setter method for server_group, mapped from YANG variable /access_points/access_point/ssids/ssid/state/server_group (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_server_group is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_server_group() directly.

    YANG Description: Specifies the RADIUS server-group to be used,
as defined in the openconfig-aaa.yang model.

Including WPA2_PERSONAL and WPA3_SAE as they can be accompanied by
MAB.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="server-group", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """server_group must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="server-group", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)""",
        })

    self.__server_group = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_server_group(self):
    self.__server_group = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="server-group", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)


  def _get_dva(self):
    """
    Getter method for dva, mapped from YANG variable /access_points/access_point/ssids/ssid/state/dva (boolean)

    YANG Description: Enable/disable Dynamic VLAN Assignment,
using 'Tunnel-Private-Group-Id' RADIUS attribute.
    """
    return self.__dva
      
  def _set_dva(self, v, load=False):
    """
    Setter method for dva, mapped from YANG variable /access_points/access_point/ssids/ssid/state/dva (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dva is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dva() directly.

    YANG Description: Enable/disable Dynamic VLAN Assignment,
using 'Tunnel-Private-Group-Id' RADIUS attribute.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="dva", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dva must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dva", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)""",
        })

    self.__dva = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dva(self):
    self.__dva = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dva", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)


  def _get_dhcp_required(self):
    """
    Getter method for dhcp_required, mapped from YANG variable /access_points/access_point/ssids/ssid/state/dhcp_required (boolean)

    YANG Description: Allow a Station to access the network only if
a DHCP exchange has occurred.
    """
    return self.__dhcp_required
      
  def _set_dhcp_required(self, v, load=False):
    """
    Setter method for dhcp_required, mapped from YANG variable /access_points/access_point/ssids/ssid/state/dhcp_required (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dhcp_required is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dhcp_required() directly.

    YANG Description: Allow a Station to access the network only if
a DHCP exchange has occurred.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="dhcp-required", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dhcp_required must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dhcp-required", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)""",
        })

    self.__dhcp_required = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dhcp_required(self):
    self.__dhcp_required = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dhcp-required", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)


  def _get_qbss_load(self):
    """
    Getter method for qbss_load, mapped from YANG variable /access_points/access_point/ssids/ssid/state/qbss_load (boolean)

    YANG Description: Advertisement of the QBSS Load Information Element.
    """
    return self.__qbss_load
      
  def _set_qbss_load(self, v, load=False):
    """
    Setter method for qbss_load, mapped from YANG variable /access_points/access_point/ssids/ssid/state/qbss_load (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_qbss_load is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_qbss_load() directly.

    YANG Description: Advertisement of the QBSS Load Information Element.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="qbss-load", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """qbss_load must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="qbss-load", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)""",
        })

    self.__qbss_load = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_qbss_load(self):
    self.__qbss_load = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="qbss-load", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)


  def _get_advertise_apname(self):
    """
    Getter method for advertise_apname, mapped from YANG variable /access_points/access_point/ssids/ssid/state/advertise_apname (boolean)

    YANG Description: Advertise the AP hostname in Beacon and Probe Response frames.
    """
    return self.__advertise_apname
      
  def _set_advertise_apname(self, v, load=False):
    """
    Setter method for advertise_apname, mapped from YANG variable /access_points/access_point/ssids/ssid/state/advertise_apname (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_advertise_apname is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_advertise_apname() directly.

    YANG Description: Advertise the AP hostname in Beacon and Probe Response frames.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="advertise-apname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """advertise_apname must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="advertise-apname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)""",
        })

    self.__advertise_apname = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_advertise_apname(self):
    self.__advertise_apname = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="advertise-apname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)


  def _get_csa(self):
    """
    Getter method for csa, mapped from YANG variable /access_points/access_point/ssids/ssid/state/csa (boolean)

    YANG Description: Enable/Disable 802.11h channel-switch-announcement.
    """
    return self.__csa
      
  def _set_csa(self, v, load=False):
    """
    Setter method for csa, mapped from YANG variable /access_points/access_point/ssids/ssid/state/csa (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_csa is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_csa() directly.

    YANG Description: Enable/Disable 802.11h channel-switch-announcement.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="csa", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """csa must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="csa", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)""",
        })

    self.__csa = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_csa(self):
    self.__csa = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="csa", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)


  def _get_ptk_timeout(self):
    """
    Getter method for ptk_timeout, mapped from YANG variable /access_points/access_point/ssids/ssid/state/ptk_timeout (uint16)

    YANG Description: Time, in seconds, for the Pairwise Transient Key.
    """
    return self.__ptk_timeout
      
  def _set_ptk_timeout(self, v, load=False):
    """
    Setter method for ptk_timeout, mapped from YANG variable /access_points/access_point/ssids/ssid/state/ptk_timeout (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ptk_timeout is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ptk_timeout() directly.

    YANG Description: Time, in seconds, for the Pairwise Transient Key.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="ptk-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ptk_timeout must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="ptk-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)""",
        })

    self.__ptk_timeout = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ptk_timeout(self):
    self.__ptk_timeout = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="ptk-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)


  def _get_gtk_timeout(self):
    """
    Getter method for gtk_timeout, mapped from YANG variable /access_points/access_point/ssids/ssid/state/gtk_timeout (uint16)

    YANG Description: TTL for the Group Temporal Key.
    """
    return self.__gtk_timeout
      
  def _set_gtk_timeout(self, v, load=False):
    """
    Setter method for gtk_timeout, mapped from YANG variable /access_points/access_point/ssids/ssid/state/gtk_timeout (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_gtk_timeout is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_gtk_timeout() directly.

    YANG Description: TTL for the Group Temporal Key.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="gtk-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """gtk_timeout must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="gtk-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)""",
        })

    self.__gtk_timeout = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_gtk_timeout(self):
    self.__gtk_timeout = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="gtk-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)


  def _get_dot11k(self):
    """
    Getter method for dot11k, mapped from YANG variable /access_points/access_point/ssids/ssid/state/dot11k (boolean)

    YANG Description: 802.11k neighbor-list enabled/disabled.
    """
    return self.__dot11k
      
  def _set_dot11k(self, v, load=False):
    """
    Setter method for dot11k, mapped from YANG variable /access_points/access_point/ssids/ssid/state/dot11k (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dot11k is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dot11k() directly.

    YANG Description: 802.11k neighbor-list enabled/disabled.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="dot11k", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dot11k must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dot11k", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)""",
        })

    self.__dot11k = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dot11k(self):
    self.__dot11k = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dot11k", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)


  def _get_okc(self):
    """
    Getter method for okc, mapped from YANG variable /access_points/access_point/ssids/ssid/state/okc (boolean)

    YANG Description: Enable/disable Opportunistic Key Caching.
    """
    return self.__okc
      
  def _set_okc(self, v, load=False):
    """
    Setter method for okc, mapped from YANG variable /access_points/access_point/ssids/ssid/state/okc (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_okc is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_okc() directly.

    YANG Description: Enable/disable Opportunistic Key Caching.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="okc", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """okc must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="okc", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)""",
        })

    self.__okc = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_okc(self):
    self.__okc = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="okc", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)


  def _get_mfp(self):
    """
    Getter method for mfp, mapped from YANG variable /access_points/access_point/ssids/ssid/state/mfp (boolean)

    YANG Description: Management Frame Protection is required for WPA3 and OWE.
    """
    return self.__mfp
      
  def _set_mfp(self, v, load=False):
    """
    Setter method for mfp, mapped from YANG variable /access_points/access_point/ssids/ssid/state/mfp (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mfp is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mfp() directly.

    YANG Description: Management Frame Protection is required for WPA3 and OWE.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="mfp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mfp must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="mfp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)""",
        })

    self.__mfp = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mfp(self):
    self.__mfp = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="mfp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)

  name = __builtin__.property(_get_name)
  enabled = __builtin__.property(_get_enabled)
  hidden = __builtin__.property(_get_hidden)
  default_vlan = __builtin__.property(_get_default_vlan)
  vlan_list = __builtin__.property(_get_vlan_list)
  operating_frequency = __builtin__.property(_get_operating_frequency)
  basic_data_rates_2g = __builtin__.property(_get_basic_data_rates_2g)
  supported_data_rates_2g = __builtin__.property(_get_supported_data_rates_2g)
  basic_data_rates_5g = __builtin__.property(_get_basic_data_rates_5g)
  supported_data_rates_5g = __builtin__.property(_get_supported_data_rates_5g)
  basic_data_rates_6g = __builtin__.property(_get_basic_data_rates_6g)
  supported_data_rates_6g = __builtin__.property(_get_supported_data_rates_6g)
  broadcast_filter = __builtin__.property(_get_broadcast_filter)
  multicast_filter = __builtin__.property(_get_multicast_filter)
  ipv6_ndp_filter = __builtin__.property(_get_ipv6_ndp_filter)
  ipv6_ndp_filter_timer = __builtin__.property(_get_ipv6_ndp_filter_timer)
  station_isolation = __builtin__.property(_get_station_isolation)
  opmode = __builtin__.property(_get_opmode)
  wpa2_psk = __builtin__.property(_get_wpa2_psk)
  wpa3_psk = __builtin__.property(_get_wpa3_psk)
  server_group = __builtin__.property(_get_server_group)
  dva = __builtin__.property(_get_dva)
  dhcp_required = __builtin__.property(_get_dhcp_required)
  qbss_load = __builtin__.property(_get_qbss_load)
  advertise_apname = __builtin__.property(_get_advertise_apname)
  csa = __builtin__.property(_get_csa)
  ptk_timeout = __builtin__.property(_get_ptk_timeout)
  gtk_timeout = __builtin__.property(_get_gtk_timeout)
  dot11k = __builtin__.property(_get_dot11k)
  okc = __builtin__.property(_get_okc)
  mfp = __builtin__.property(_get_mfp)


  _pyangbind_elements = OrderedDict([('name', name), ('enabled', enabled), ('hidden', hidden), ('default_vlan', default_vlan), ('vlan_list', vlan_list), ('operating_frequency', operating_frequency), ('basic_data_rates_2g', basic_data_rates_2g), ('supported_data_rates_2g', supported_data_rates_2g), ('basic_data_rates_5g', basic_data_rates_5g), ('supported_data_rates_5g', supported_data_rates_5g), ('basic_data_rates_6g', basic_data_rates_6g), ('supported_data_rates_6g', supported_data_rates_6g), ('broadcast_filter', broadcast_filter), ('multicast_filter', multicast_filter), ('ipv6_ndp_filter', ipv6_ndp_filter), ('ipv6_ndp_filter_timer', ipv6_ndp_filter_timer), ('station_isolation', station_isolation), ('opmode', opmode), ('wpa2_psk', wpa2_psk), ('wpa3_psk', wpa3_psk), ('server_group', server_group), ('dva', dva), ('dhcp_required', dhcp_required), ('qbss_load', qbss_load), ('advertise_apname', advertise_apname), ('csa', csa), ('ptk_timeout', ptk_timeout), ('gtk_timeout', gtk_timeout), ('dot11k', dot11k), ('okc', okc), ('mfp', mfp), ])


class yc_rx_data_dist_openconfig_access_points__access_points_access_point_ssids_ssid_bssids_bssid_state_counters_rx_data_dist(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/ssids/ssid/bssids/bssid/state/counters/rx-data-dist. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: The distribution of Data frame sizes in bytes of
successfully received AMPDU, or MPDU for non-aggregated,
frames. The distribution should characterize frame sizes
starting at 64 bytes or less with the bin size doubling for
each successive bin to a maximum of 1MB or larger, as
represented in the following table:

Lower Bound Upper Bound
  0          64
  65         128
  129        256
  257        512
  513        1024
  1025       2048
  2049       4096
  4097       8192
  8193       16384
  16385      32768
  32769      65536
  65537      131072
  131073     262144
  262145     524288
  524289     1048576
  """
  __slots__ = ('_path_helper', '_extmethods', '__rx_0_64','__rx_65_128','__rx_129_256','__rx_257_512','__rx_513_1024','__rx_1025_2048','__rx_2049_4096','__rx_4097_8192','__rx_8193_16384','__rx_16385_32768','__rx_32769_65536','__rx_65537_131072','__rx_131073_262144','__rx_262145_524288','__rx_524289_1048576',)

  _yang_name = 'rx-data-dist'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__rx_0_64 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-0-64", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__rx_65_128 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-65-128", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__rx_129_256 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-129-256", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__rx_257_512 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-257-512", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__rx_513_1024 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-513-1024", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__rx_1025_2048 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-1025-2048", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__rx_2049_4096 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-2049-4096", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__rx_4097_8192 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-4097-8192", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__rx_8193_16384 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-8193-16384", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__rx_16385_32768 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-16385-32768", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__rx_32769_65536 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-32769-65536", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__rx_65537_131072 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-65537-131072", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__rx_131073_262144 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-131073-262144", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__rx_262145_524288 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-262145-524288", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__rx_524289_1048576 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-524289-1048576", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', 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 ['access-points', 'access-point', 'ssids', 'ssid', 'bssids', 'bssid', 'state', 'counters', 'rx-data-dist']

  def _get_rx_0_64(self):
    """
    Getter method for rx_0_64, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_data_dist/rx_0_64 (oc-yang:counter64)

    YANG Description: Transmitted AMPDU or MPDUs from 0 to 64 Bytes.
    """
    return self.__rx_0_64
      
  def _set_rx_0_64(self, v, load=False):
    """
    Setter method for rx_0_64, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_data_dist/rx_0_64 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_0_64 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_0_64() directly.

    YANG Description: Transmitted AMPDU or MPDUs from 0 to 64 Bytes.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-0-64", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_0_64 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-0-64", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__rx_0_64 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rx_0_64(self):
    self.__rx_0_64 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-0-64", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_rx_65_128(self):
    """
    Getter method for rx_65_128, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_data_dist/rx_65_128 (oc-yang:counter64)

    YANG Description: Transmitted AMPDU or MPDUs from 65 to 128 Bytes.
    """
    return self.__rx_65_128
      
  def _set_rx_65_128(self, v, load=False):
    """
    Setter method for rx_65_128, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_data_dist/rx_65_128 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_65_128 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_65_128() directly.

    YANG Description: Transmitted AMPDU or MPDUs from 65 to 128 Bytes.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-65-128", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_65_128 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-65-128", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__rx_65_128 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rx_65_128(self):
    self.__rx_65_128 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-65-128", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_rx_129_256(self):
    """
    Getter method for rx_129_256, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_data_dist/rx_129_256 (oc-yang:counter64)

    YANG Description: Transmitted AMPDU or MPDUs from 129 to 256 Bytes.
    """
    return self.__rx_129_256
      
  def _set_rx_129_256(self, v, load=False):
    """
    Setter method for rx_129_256, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_data_dist/rx_129_256 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_129_256 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_129_256() directly.

    YANG Description: Transmitted AMPDU or MPDUs from 129 to 256 Bytes.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-129-256", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_129_256 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-129-256", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__rx_129_256 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rx_129_256(self):
    self.__rx_129_256 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-129-256", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_rx_257_512(self):
    """
    Getter method for rx_257_512, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_data_dist/rx_257_512 (oc-yang:counter64)

    YANG Description: Transmitted AMPDU or MPDUs from 257 to 512 Bytes.
    """
    return self.__rx_257_512
      
  def _set_rx_257_512(self, v, load=False):
    """
    Setter method for rx_257_512, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_data_dist/rx_257_512 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_257_512 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_257_512() directly.

    YANG Description: Transmitted AMPDU or MPDUs from 257 to 512 Bytes.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-257-512", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_257_512 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-257-512", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__rx_257_512 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rx_257_512(self):
    self.__rx_257_512 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-257-512", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_rx_513_1024(self):
    """
    Getter method for rx_513_1024, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_data_dist/rx_513_1024 (oc-yang:counter64)

    YANG Description: Transmitted AMPDU or MPDUs from 513 to 1024 Bytes.
    """
    return self.__rx_513_1024
      
  def _set_rx_513_1024(self, v, load=False):
    """
    Setter method for rx_513_1024, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_data_dist/rx_513_1024 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_513_1024 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_513_1024() directly.

    YANG Description: Transmitted AMPDU or MPDUs from 513 to 1024 Bytes.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-513-1024", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_513_1024 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-513-1024", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__rx_513_1024 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rx_513_1024(self):
    self.__rx_513_1024 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-513-1024", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_rx_1025_2048(self):
    """
    Getter method for rx_1025_2048, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_data_dist/rx_1025_2048 (oc-yang:counter64)

    YANG Description: Transmitted AMPDU or MPDUs from 1025 to 2048 Bytes.
    """
    return self.__rx_1025_2048
      
  def _set_rx_1025_2048(self, v, load=False):
    """
    Setter method for rx_1025_2048, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_data_dist/rx_1025_2048 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_1025_2048 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_1025_2048() directly.

    YANG Description: Transmitted AMPDU or MPDUs from 1025 to 2048 Bytes.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-1025-2048", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_1025_2048 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-1025-2048", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__rx_1025_2048 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rx_1025_2048(self):
    self.__rx_1025_2048 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-1025-2048", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_rx_2049_4096(self):
    """
    Getter method for rx_2049_4096, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_data_dist/rx_2049_4096 (oc-yang:counter64)

    YANG Description: Transmitted AMPDU or MPDUs from 2049 to 4096 Bytes.
    """
    return self.__rx_2049_4096
      
  def _set_rx_2049_4096(self, v, load=False):
    """
    Setter method for rx_2049_4096, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_data_dist/rx_2049_4096 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_2049_4096 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_2049_4096() directly.

    YANG Description: Transmitted AMPDU or MPDUs from 2049 to 4096 Bytes.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-2049-4096", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_2049_4096 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-2049-4096", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__rx_2049_4096 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rx_2049_4096(self):
    self.__rx_2049_4096 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-2049-4096", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_rx_4097_8192(self):
    """
    Getter method for rx_4097_8192, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_data_dist/rx_4097_8192 (oc-yang:counter64)

    YANG Description: Transmitted AMPDU or MPDUs from 4097 to 8192 Bytes.
    """
    return self.__rx_4097_8192
      
  def _set_rx_4097_8192(self, v, load=False):
    """
    Setter method for rx_4097_8192, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_data_dist/rx_4097_8192 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_4097_8192 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_4097_8192() directly.

    YANG Description: Transmitted AMPDU or MPDUs from 4097 to 8192 Bytes.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-4097-8192", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_4097_8192 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-4097-8192", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__rx_4097_8192 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rx_4097_8192(self):
    self.__rx_4097_8192 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-4097-8192", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_rx_8193_16384(self):
    """
    Getter method for rx_8193_16384, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_data_dist/rx_8193_16384 (oc-yang:counter64)

    YANG Description: Transmitted AMPDU or MPDUs from 8193 to 16384 Bytes.
    """
    return self.__rx_8193_16384
      
  def _set_rx_8193_16384(self, v, load=False):
    """
    Setter method for rx_8193_16384, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_data_dist/rx_8193_16384 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_8193_16384 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_8193_16384() directly.

    YANG Description: Transmitted AMPDU or MPDUs from 8193 to 16384 Bytes.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-8193-16384", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_8193_16384 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-8193-16384", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__rx_8193_16384 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rx_8193_16384(self):
    self.__rx_8193_16384 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-8193-16384", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_rx_16385_32768(self):
    """
    Getter method for rx_16385_32768, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_data_dist/rx_16385_32768 (oc-yang:counter64)

    YANG Description: Transmitted AMPDU or MPDUs from 16385 to 32768 Bytes.
    """
    return self.__rx_16385_32768
      
  def _set_rx_16385_32768(self, v, load=False):
    """
    Setter method for rx_16385_32768, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_data_dist/rx_16385_32768 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_16385_32768 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_16385_32768() directly.

    YANG Description: Transmitted AMPDU or MPDUs from 16385 to 32768 Bytes.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-16385-32768", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_16385_32768 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-16385-32768", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__rx_16385_32768 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rx_16385_32768(self):
    self.__rx_16385_32768 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-16385-32768", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_rx_32769_65536(self):
    """
    Getter method for rx_32769_65536, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_data_dist/rx_32769_65536 (oc-yang:counter64)

    YANG Description: Transmitted AMPDU or MPDUs from 32769 to 65536 Bytes.
    """
    return self.__rx_32769_65536
      
  def _set_rx_32769_65536(self, v, load=False):
    """
    Setter method for rx_32769_65536, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_data_dist/rx_32769_65536 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_32769_65536 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_32769_65536() directly.

    YANG Description: Transmitted AMPDU or MPDUs from 32769 to 65536 Bytes.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-32769-65536", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_32769_65536 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-32769-65536", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__rx_32769_65536 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rx_32769_65536(self):
    self.__rx_32769_65536 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-32769-65536", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_rx_65537_131072(self):
    """
    Getter method for rx_65537_131072, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_data_dist/rx_65537_131072 (oc-yang:counter64)

    YANG Description: Transmitted AMPDU from 65537 to 131072 Bytes.
    """
    return self.__rx_65537_131072
      
  def _set_rx_65537_131072(self, v, load=False):
    """
    Setter method for rx_65537_131072, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_data_dist/rx_65537_131072 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_65537_131072 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_65537_131072() directly.

    YANG Description: Transmitted AMPDU from 65537 to 131072 Bytes.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-65537-131072", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_65537_131072 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-65537-131072", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__rx_65537_131072 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rx_65537_131072(self):
    self.__rx_65537_131072 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-65537-131072", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_rx_131073_262144(self):
    """
    Getter method for rx_131073_262144, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_data_dist/rx_131073_262144 (oc-yang:counter64)

    YANG Description: Transmitted AMPDU from 131073 to 262144 Bytes.
    """
    return self.__rx_131073_262144
      
  def _set_rx_131073_262144(self, v, load=False):
    """
    Setter method for rx_131073_262144, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_data_dist/rx_131073_262144 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_131073_262144 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_131073_262144() directly.

    YANG Description: Transmitted AMPDU from 131073 to 262144 Bytes.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-131073-262144", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_131073_262144 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-131073-262144", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__rx_131073_262144 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rx_131073_262144(self):
    self.__rx_131073_262144 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-131073-262144", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_rx_262145_524288(self):
    """
    Getter method for rx_262145_524288, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_data_dist/rx_262145_524288 (oc-yang:counter64)

    YANG Description: Transmitted AMPDU from 262145 to 524288 Bytes.
    """
    return self.__rx_262145_524288
      
  def _set_rx_262145_524288(self, v, load=False):
    """
    Setter method for rx_262145_524288, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_data_dist/rx_262145_524288 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_262145_524288 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_262145_524288() directly.

    YANG Description: Transmitted AMPDU from 262145 to 524288 Bytes.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-262145-524288", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_262145_524288 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-262145-524288", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__rx_262145_524288 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rx_262145_524288(self):
    self.__rx_262145_524288 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-262145-524288", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_rx_524289_1048576(self):
    """
    Getter method for rx_524289_1048576, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_data_dist/rx_524289_1048576 (oc-yang:counter64)

    YANG Description: Transmitted AMPDU from 524289 to 1048576 Bytes.
    """
    return self.__rx_524289_1048576
      
  def _set_rx_524289_1048576(self, v, load=False):
    """
    Setter method for rx_524289_1048576, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_data_dist/rx_524289_1048576 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_524289_1048576 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_524289_1048576() directly.

    YANG Description: Transmitted AMPDU from 524289 to 1048576 Bytes.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-524289-1048576", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_524289_1048576 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-524289-1048576", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__rx_524289_1048576 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rx_524289_1048576(self):
    self.__rx_524289_1048576 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-524289-1048576", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)

  rx_0_64 = __builtin__.property(_get_rx_0_64)
  rx_65_128 = __builtin__.property(_get_rx_65_128)
  rx_129_256 = __builtin__.property(_get_rx_129_256)
  rx_257_512 = __builtin__.property(_get_rx_257_512)
  rx_513_1024 = __builtin__.property(_get_rx_513_1024)
  rx_1025_2048 = __builtin__.property(_get_rx_1025_2048)
  rx_2049_4096 = __builtin__.property(_get_rx_2049_4096)
  rx_4097_8192 = __builtin__.property(_get_rx_4097_8192)
  rx_8193_16384 = __builtin__.property(_get_rx_8193_16384)
  rx_16385_32768 = __builtin__.property(_get_rx_16385_32768)
  rx_32769_65536 = __builtin__.property(_get_rx_32769_65536)
  rx_65537_131072 = __builtin__.property(_get_rx_65537_131072)
  rx_131073_262144 = __builtin__.property(_get_rx_131073_262144)
  rx_262145_524288 = __builtin__.property(_get_rx_262145_524288)
  rx_524289_1048576 = __builtin__.property(_get_rx_524289_1048576)


  _pyangbind_elements = OrderedDict([('rx_0_64', rx_0_64), ('rx_65_128', rx_65_128), ('rx_129_256', rx_129_256), ('rx_257_512', rx_257_512), ('rx_513_1024', rx_513_1024), ('rx_1025_2048', rx_1025_2048), ('rx_2049_4096', rx_2049_4096), ('rx_4097_8192', rx_4097_8192), ('rx_8193_16384', rx_8193_16384), ('rx_16385_32768', rx_16385_32768), ('rx_32769_65536', rx_32769_65536), ('rx_65537_131072', rx_65537_131072), ('rx_131073_262144', rx_131073_262144), ('rx_262145_524288', rx_262145_524288), ('rx_524289_1048576', rx_524289_1048576), ])


class yc_rx_data_wmm_openconfig_access_points__access_points_access_point_ssids_ssid_bssids_bssid_state_counters_rx_data_wmm(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/ssids/ssid/bssids/bssid/state/counters/rx-data-wmm. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Received 802.11 Data frames, per WMM Access Category.
  """
  __slots__ = ('_path_helper', '_extmethods', '__vi','__vo','__be','__bk',)

  _yang_name = 'rx-data-wmm'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__vi = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="vi", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__vo = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="vo", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__be = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="be", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__bk = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="bk", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', 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 ['access-points', 'access-point', 'ssids', 'ssid', 'bssids', 'bssid', 'state', 'counters', 'rx-data-wmm']

  def _get_vi(self):
    """
    Getter method for vi, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_data_wmm/vi (oc-yang:counter64)

    YANG Description: Rx Data frames marked as Access Category Video.
    """
    return self.__vi
      
  def _set_vi(self, v, load=False):
    """
    Setter method for vi, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_data_wmm/vi (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_vi is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_vi() directly.

    YANG Description: Rx Data frames marked as Access Category Video.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="vi", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """vi must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="vi", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__vi = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_vi(self):
    self.__vi = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="vi", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_vo(self):
    """
    Getter method for vo, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_data_wmm/vo (oc-yang:counter64)

    YANG Description: Rx Data frames marked as Access Category Voice.
    """
    return self.__vo
      
  def _set_vo(self, v, load=False):
    """
    Setter method for vo, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_data_wmm/vo (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_vo is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_vo() directly.

    YANG Description: Rx Data frames marked as Access Category Voice.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="vo", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """vo must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="vo", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__vo = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_vo(self):
    self.__vo = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="vo", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_be(self):
    """
    Getter method for be, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_data_wmm/be (oc-yang:counter64)

    YANG Description: Rx Data frames marked as Access Category Best Effort.
    """
    return self.__be
      
  def _set_be(self, v, load=False):
    """
    Setter method for be, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_data_wmm/be (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_be is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_be() directly.

    YANG Description: Rx Data frames marked as Access Category Best Effort.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="be", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """be must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="be", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__be = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_be(self):
    self.__be = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="be", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_bk(self):
    """
    Getter method for bk, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_data_wmm/bk (oc-yang:counter64)

    YANG Description: Rx Data frames marked as Access Category Background.
    """
    return self.__bk
      
  def _set_bk(self, v, load=False):
    """
    Setter method for bk, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_data_wmm/bk (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_bk is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_bk() directly.

    YANG Description: Rx Data frames marked as Access Category Background.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="bk", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """bk must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="bk", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__bk = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_bk(self):
    self.__bk = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="bk", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)

  vi = __builtin__.property(_get_vi)
  vo = __builtin__.property(_get_vo)
  be = __builtin__.property(_get_be)
  bk = __builtin__.property(_get_bk)


  _pyangbind_elements = OrderedDict([('vi', vi), ('vo', vo), ('be', be), ('bk', bk), ])


class yc_rx_mcs_openconfig_access_points__access_points_access_point_ssids_ssid_bssids_bssid_state_counters_rx_mcs(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/ssids/ssid/bssids/bssid/state/counters/rx-mcs. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Received Data frames, per MCS Index. It is expected that
vendors bucketize 802.11n MCS frames in their matching
802.11ac buckets.

Example, 802.11n MCS 15 = 802.11ac MCS 7.
802.11n MCS 20 = 802.11ac MCS 4.
  """
  __slots__ = ('_path_helper', '_extmethods', '__mcs0','__mcs1','__mcs2','__mcs3','__mcs4','__mcs5','__mcs6','__mcs7','__mcs8','__mcs9','__mcs10','__mcs11',)

  _yang_name = 'rx-mcs'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__mcs0 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs0", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__mcs1 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs1", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__mcs2 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs2", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__mcs3 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs3", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__mcs4 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs4", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__mcs5 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs5", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__mcs6 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs6", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__mcs7 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs7", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__mcs8 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs8", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__mcs9 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs9", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__mcs10 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs10", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__mcs11 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs11", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', 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 ['access-points', 'access-point', 'ssids', 'ssid', 'bssids', 'bssid', 'state', 'counters', 'rx-mcs']

  def _get_mcs0(self):
    """
    Getter method for mcs0, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_mcs/mcs0 (oc-yang:counter64)

    YANG Description: Rx Data frames at MCS 0.
    """
    return self.__mcs0
      
  def _set_mcs0(self, v, load=False):
    """
    Setter method for mcs0, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_mcs/mcs0 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mcs0 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mcs0() directly.

    YANG Description: Rx Data frames at MCS 0.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs0", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mcs0 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs0", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__mcs0 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mcs0(self):
    self.__mcs0 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs0", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_mcs1(self):
    """
    Getter method for mcs1, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_mcs/mcs1 (oc-yang:counter64)

    YANG Description: Rx Data frames at MCS 1.
    """
    return self.__mcs1
      
  def _set_mcs1(self, v, load=False):
    """
    Setter method for mcs1, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_mcs/mcs1 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mcs1 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mcs1() directly.

    YANG Description: Rx Data frames at MCS 1.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs1", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mcs1 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs1", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__mcs1 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mcs1(self):
    self.__mcs1 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs1", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_mcs2(self):
    """
    Getter method for mcs2, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_mcs/mcs2 (oc-yang:counter64)

    YANG Description: Rx Data frames at MCS 2.
    """
    return self.__mcs2
      
  def _set_mcs2(self, v, load=False):
    """
    Setter method for mcs2, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_mcs/mcs2 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mcs2 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mcs2() directly.

    YANG Description: Rx Data frames at MCS 2.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs2", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mcs2 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs2", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__mcs2 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mcs2(self):
    self.__mcs2 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs2", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_mcs3(self):
    """
    Getter method for mcs3, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_mcs/mcs3 (oc-yang:counter64)

    YANG Description: Rx Data frames at MCS 3.
    """
    return self.__mcs3
      
  def _set_mcs3(self, v, load=False):
    """
    Setter method for mcs3, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_mcs/mcs3 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mcs3 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mcs3() directly.

    YANG Description: Rx Data frames at MCS 3.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs3", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mcs3 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs3", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__mcs3 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mcs3(self):
    self.__mcs3 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs3", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_mcs4(self):
    """
    Getter method for mcs4, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_mcs/mcs4 (oc-yang:counter64)

    YANG Description: Rx Data frames at MCS 4.
    """
    return self.__mcs4
      
  def _set_mcs4(self, v, load=False):
    """
    Setter method for mcs4, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_mcs/mcs4 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mcs4 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mcs4() directly.

    YANG Description: Rx Data frames at MCS 4.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs4", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mcs4 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs4", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__mcs4 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mcs4(self):
    self.__mcs4 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs4", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_mcs5(self):
    """
    Getter method for mcs5, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_mcs/mcs5 (oc-yang:counter64)

    YANG Description: Rx Data frames at MCS 5.
    """
    return self.__mcs5
      
  def _set_mcs5(self, v, load=False):
    """
    Setter method for mcs5, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_mcs/mcs5 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mcs5 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mcs5() directly.

    YANG Description: Rx Data frames at MCS 5.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs5", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mcs5 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs5", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__mcs5 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mcs5(self):
    self.__mcs5 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs5", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_mcs6(self):
    """
    Getter method for mcs6, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_mcs/mcs6 (oc-yang:counter64)

    YANG Description: Rx Data frames at MCS 6.
    """
    return self.__mcs6
      
  def _set_mcs6(self, v, load=False):
    """
    Setter method for mcs6, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_mcs/mcs6 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mcs6 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mcs6() directly.

    YANG Description: Rx Data frames at MCS 6.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs6", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mcs6 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs6", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__mcs6 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mcs6(self):
    self.__mcs6 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs6", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_mcs7(self):
    """
    Getter method for mcs7, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_mcs/mcs7 (oc-yang:counter64)

    YANG Description: Rx Data frames at MCS 7.
    """
    return self.__mcs7
      
  def _set_mcs7(self, v, load=False):
    """
    Setter method for mcs7, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_mcs/mcs7 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mcs7 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mcs7() directly.

    YANG Description: Rx Data frames at MCS 7.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs7", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mcs7 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs7", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__mcs7 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mcs7(self):
    self.__mcs7 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs7", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_mcs8(self):
    """
    Getter method for mcs8, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_mcs/mcs8 (oc-yang:counter64)

    YANG Description: Rx Data frames at MCS 8.
    """
    return self.__mcs8
      
  def _set_mcs8(self, v, load=False):
    """
    Setter method for mcs8, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_mcs/mcs8 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mcs8 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mcs8() directly.

    YANG Description: Rx Data frames at MCS 8.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs8", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mcs8 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs8", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__mcs8 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mcs8(self):
    self.__mcs8 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs8", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_mcs9(self):
    """
    Getter method for mcs9, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_mcs/mcs9 (oc-yang:counter64)

    YANG Description: Rx Data frames at MCS 9.
    """
    return self.__mcs9
      
  def _set_mcs9(self, v, load=False):
    """
    Setter method for mcs9, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_mcs/mcs9 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mcs9 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mcs9() directly.

    YANG Description: Rx Data frames at MCS 9.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs9", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mcs9 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs9", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__mcs9 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mcs9(self):
    self.__mcs9 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs9", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_mcs10(self):
    """
    Getter method for mcs10, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_mcs/mcs10 (oc-yang:counter64)

    YANG Description: Rx Data frames at MCS 10.
    """
    return self.__mcs10
      
  def _set_mcs10(self, v, load=False):
    """
    Setter method for mcs10, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_mcs/mcs10 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mcs10 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mcs10() directly.

    YANG Description: Rx Data frames at MCS 10.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs10", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mcs10 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs10", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__mcs10 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mcs10(self):
    self.__mcs10 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs10", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_mcs11(self):
    """
    Getter method for mcs11, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_mcs/mcs11 (oc-yang:counter64)

    YANG Description: Rx Data frames at MCS 11.
    """
    return self.__mcs11
      
  def _set_mcs11(self, v, load=False):
    """
    Setter method for mcs11, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_mcs/mcs11 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mcs11 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mcs11() directly.

    YANG Description: Rx Data frames at MCS 11.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs11", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mcs11 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs11", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__mcs11 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mcs11(self):
    self.__mcs11 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs11", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)

  mcs0 = __builtin__.property(_get_mcs0)
  mcs1 = __builtin__.property(_get_mcs1)
  mcs2 = __builtin__.property(_get_mcs2)
  mcs3 = __builtin__.property(_get_mcs3)
  mcs4 = __builtin__.property(_get_mcs4)
  mcs5 = __builtin__.property(_get_mcs5)
  mcs6 = __builtin__.property(_get_mcs6)
  mcs7 = __builtin__.property(_get_mcs7)
  mcs8 = __builtin__.property(_get_mcs8)
  mcs9 = __builtin__.property(_get_mcs9)
  mcs10 = __builtin__.property(_get_mcs10)
  mcs11 = __builtin__.property(_get_mcs11)


  _pyangbind_elements = OrderedDict([('mcs0', mcs0), ('mcs1', mcs1), ('mcs2', mcs2), ('mcs3', mcs3), ('mcs4', mcs4), ('mcs5', mcs5), ('mcs6', mcs6), ('mcs7', mcs7), ('mcs8', mcs8), ('mcs9', mcs9), ('mcs10', mcs10), ('mcs11', mcs11), ])


class yc_tx_data_dist_openconfig_access_points__access_points_access_point_ssids_ssid_bssids_bssid_state_counters_tx_data_dist(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/ssids/ssid/bssids/bssid/state/counters/tx-data-dist. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: The distribution of Data frame sizes in bytes of
successfully transmitted AMPDU, or MPDU for non-aggregated,
frames. The distribution should characterize frame sizes
starting at 64 bytes or less with the bin size doubling for
each successive bin to a maximum of 1MB or larger, as
represented in the following table:

Lower Bound Upper Bound
  0          64
  65         128
  129        256
  257        512
  513        1024
  1025       2048
  2049       4096
  4097       8192
  8193       16384
  16385      32768
  32769      65536
  65537      131072
  131073     262144
  262145     524288
  524289     1048576
  """
  __slots__ = ('_path_helper', '_extmethods', '__tx_0_64','__tx_65_128','__tx_129_256','__tx_257_512','__tx_513_1024','__tx_1025_2048','__tx_2049_4096','__tx_4097_8192','__tx_8193_16384','__tx_16385_32768','__tx_32769_65536','__tx_65537_131072','__tx_131073_262144','__tx_262145_524288','__tx_524289_1048576',)

  _yang_name = 'tx-data-dist'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__tx_0_64 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-0-64", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__tx_65_128 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-65-128", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__tx_129_256 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-129-256", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__tx_257_512 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-257-512", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__tx_513_1024 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-513-1024", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__tx_1025_2048 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-1025-2048", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__tx_2049_4096 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-2049-4096", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__tx_4097_8192 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-4097-8192", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__tx_8193_16384 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-8193-16384", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__tx_16385_32768 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-16385-32768", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__tx_32769_65536 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-32769-65536", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__tx_65537_131072 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-65537-131072", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__tx_131073_262144 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-131073-262144", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__tx_262145_524288 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-262145-524288", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__tx_524289_1048576 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-524289-1048576", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', 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 ['access-points', 'access-point', 'ssids', 'ssid', 'bssids', 'bssid', 'state', 'counters', 'tx-data-dist']

  def _get_tx_0_64(self):
    """
    Getter method for tx_0_64, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_data_dist/tx_0_64 (oc-yang:counter64)

    YANG Description: Transmitted AMPDU or MPDUs from 0 to 64 Bytes.
    """
    return self.__tx_0_64
      
  def _set_tx_0_64(self, v, load=False):
    """
    Setter method for tx_0_64, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_data_dist/tx_0_64 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tx_0_64 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tx_0_64() directly.

    YANG Description: Transmitted AMPDU or MPDUs from 0 to 64 Bytes.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-0-64", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tx_0_64 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-0-64", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__tx_0_64 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_tx_0_64(self):
    self.__tx_0_64 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-0-64", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_tx_65_128(self):
    """
    Getter method for tx_65_128, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_data_dist/tx_65_128 (oc-yang:counter64)

    YANG Description: Transmitted AMPDU or MPDUs from 65 to 128 Bytes.
    """
    return self.__tx_65_128
      
  def _set_tx_65_128(self, v, load=False):
    """
    Setter method for tx_65_128, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_data_dist/tx_65_128 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tx_65_128 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tx_65_128() directly.

    YANG Description: Transmitted AMPDU or MPDUs from 65 to 128 Bytes.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-65-128", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tx_65_128 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-65-128", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__tx_65_128 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_tx_65_128(self):
    self.__tx_65_128 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-65-128", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_tx_129_256(self):
    """
    Getter method for tx_129_256, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_data_dist/tx_129_256 (oc-yang:counter64)

    YANG Description: Transmitted AMPDU or MPDUs from 129 to 256 Bytes.
    """
    return self.__tx_129_256
      
  def _set_tx_129_256(self, v, load=False):
    """
    Setter method for tx_129_256, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_data_dist/tx_129_256 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tx_129_256 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tx_129_256() directly.

    YANG Description: Transmitted AMPDU or MPDUs from 129 to 256 Bytes.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-129-256", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tx_129_256 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-129-256", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__tx_129_256 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_tx_129_256(self):
    self.__tx_129_256 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-129-256", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_tx_257_512(self):
    """
    Getter method for tx_257_512, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_data_dist/tx_257_512 (oc-yang:counter64)

    YANG Description: Transmitted AMPDU or MPDUs from 257 to 512 Bytes.
    """
    return self.__tx_257_512
      
  def _set_tx_257_512(self, v, load=False):
    """
    Setter method for tx_257_512, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_data_dist/tx_257_512 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tx_257_512 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tx_257_512() directly.

    YANG Description: Transmitted AMPDU or MPDUs from 257 to 512 Bytes.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-257-512", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tx_257_512 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-257-512", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__tx_257_512 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_tx_257_512(self):
    self.__tx_257_512 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-257-512", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_tx_513_1024(self):
    """
    Getter method for tx_513_1024, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_data_dist/tx_513_1024 (oc-yang:counter64)

    YANG Description: Transmitted AMPDU or MPDUs from 513 to 1024 Bytes.
    """
    return self.__tx_513_1024
      
  def _set_tx_513_1024(self, v, load=False):
    """
    Setter method for tx_513_1024, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_data_dist/tx_513_1024 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tx_513_1024 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tx_513_1024() directly.

    YANG Description: Transmitted AMPDU or MPDUs from 513 to 1024 Bytes.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-513-1024", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tx_513_1024 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-513-1024", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__tx_513_1024 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_tx_513_1024(self):
    self.__tx_513_1024 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-513-1024", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_tx_1025_2048(self):
    """
    Getter method for tx_1025_2048, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_data_dist/tx_1025_2048 (oc-yang:counter64)

    YANG Description: Transmitted AMPDU or MPDUs from 1025 to 2048 Bytes.
    """
    return self.__tx_1025_2048
      
  def _set_tx_1025_2048(self, v, load=False):
    """
    Setter method for tx_1025_2048, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_data_dist/tx_1025_2048 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tx_1025_2048 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tx_1025_2048() directly.

    YANG Description: Transmitted AMPDU or MPDUs from 1025 to 2048 Bytes.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-1025-2048", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tx_1025_2048 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-1025-2048", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__tx_1025_2048 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_tx_1025_2048(self):
    self.__tx_1025_2048 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-1025-2048", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_tx_2049_4096(self):
    """
    Getter method for tx_2049_4096, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_data_dist/tx_2049_4096 (oc-yang:counter64)

    YANG Description: Transmitted AMPDU or MPDUs from 2049 to 4096 Bytes.
    """
    return self.__tx_2049_4096
      
  def _set_tx_2049_4096(self, v, load=False):
    """
    Setter method for tx_2049_4096, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_data_dist/tx_2049_4096 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tx_2049_4096 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tx_2049_4096() directly.

    YANG Description: Transmitted AMPDU or MPDUs from 2049 to 4096 Bytes.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-2049-4096", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tx_2049_4096 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-2049-4096", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__tx_2049_4096 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_tx_2049_4096(self):
    self.__tx_2049_4096 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-2049-4096", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_tx_4097_8192(self):
    """
    Getter method for tx_4097_8192, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_data_dist/tx_4097_8192 (oc-yang:counter64)

    YANG Description: Transmitted AMPDU or MPDUs from 4097 to 8192 Bytes.
    """
    return self.__tx_4097_8192
      
  def _set_tx_4097_8192(self, v, load=False):
    """
    Setter method for tx_4097_8192, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_data_dist/tx_4097_8192 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tx_4097_8192 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tx_4097_8192() directly.

    YANG Description: Transmitted AMPDU or MPDUs from 4097 to 8192 Bytes.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-4097-8192", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tx_4097_8192 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-4097-8192", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__tx_4097_8192 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_tx_4097_8192(self):
    self.__tx_4097_8192 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-4097-8192", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_tx_8193_16384(self):
    """
    Getter method for tx_8193_16384, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_data_dist/tx_8193_16384 (oc-yang:counter64)

    YANG Description: Transmitted AMPDU or MPDUs from 8193 to 16384 Bytes.
    """
    return self.__tx_8193_16384
      
  def _set_tx_8193_16384(self, v, load=False):
    """
    Setter method for tx_8193_16384, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_data_dist/tx_8193_16384 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tx_8193_16384 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tx_8193_16384() directly.

    YANG Description: Transmitted AMPDU or MPDUs from 8193 to 16384 Bytes.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-8193-16384", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tx_8193_16384 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-8193-16384", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__tx_8193_16384 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_tx_8193_16384(self):
    self.__tx_8193_16384 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-8193-16384", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_tx_16385_32768(self):
    """
    Getter method for tx_16385_32768, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_data_dist/tx_16385_32768 (oc-yang:counter64)

    YANG Description: Transmitted AMPDU or MPDUs from 16385 to 32768 Bytes.
    """
    return self.__tx_16385_32768
      
  def _set_tx_16385_32768(self, v, load=False):
    """
    Setter method for tx_16385_32768, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_data_dist/tx_16385_32768 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tx_16385_32768 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tx_16385_32768() directly.

    YANG Description: Transmitted AMPDU or MPDUs from 16385 to 32768 Bytes.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-16385-32768", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tx_16385_32768 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-16385-32768", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__tx_16385_32768 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_tx_16385_32768(self):
    self.__tx_16385_32768 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-16385-32768", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_tx_32769_65536(self):
    """
    Getter method for tx_32769_65536, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_data_dist/tx_32769_65536 (oc-yang:counter64)

    YANG Description: Transmitted AMPDU or MPDUs from 32769 to 65536 Bytes.
    """
    return self.__tx_32769_65536
      
  def _set_tx_32769_65536(self, v, load=False):
    """
    Setter method for tx_32769_65536, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_data_dist/tx_32769_65536 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tx_32769_65536 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tx_32769_65536() directly.

    YANG Description: Transmitted AMPDU or MPDUs from 32769 to 65536 Bytes.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-32769-65536", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tx_32769_65536 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-32769-65536", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__tx_32769_65536 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_tx_32769_65536(self):
    self.__tx_32769_65536 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-32769-65536", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_tx_65537_131072(self):
    """
    Getter method for tx_65537_131072, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_data_dist/tx_65537_131072 (oc-yang:counter64)

    YANG Description: Transmitted AMPDU from 65537 to 131072 Bytes.
    """
    return self.__tx_65537_131072
      
  def _set_tx_65537_131072(self, v, load=False):
    """
    Setter method for tx_65537_131072, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_data_dist/tx_65537_131072 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tx_65537_131072 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tx_65537_131072() directly.

    YANG Description: Transmitted AMPDU from 65537 to 131072 Bytes.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-65537-131072", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tx_65537_131072 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-65537-131072", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__tx_65537_131072 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_tx_65537_131072(self):
    self.__tx_65537_131072 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-65537-131072", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_tx_131073_262144(self):
    """
    Getter method for tx_131073_262144, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_data_dist/tx_131073_262144 (oc-yang:counter64)

    YANG Description: Transmitted AMPDU from 131073 to 262144 Bytes.
    """
    return self.__tx_131073_262144
      
  def _set_tx_131073_262144(self, v, load=False):
    """
    Setter method for tx_131073_262144, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_data_dist/tx_131073_262144 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tx_131073_262144 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tx_131073_262144() directly.

    YANG Description: Transmitted AMPDU from 131073 to 262144 Bytes.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-131073-262144", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tx_131073_262144 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-131073-262144", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__tx_131073_262144 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_tx_131073_262144(self):
    self.__tx_131073_262144 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-131073-262144", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_tx_262145_524288(self):
    """
    Getter method for tx_262145_524288, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_data_dist/tx_262145_524288 (oc-yang:counter64)

    YANG Description: Transmitted AMPDU from 262145 to 524288 Bytes.
    """
    return self.__tx_262145_524288
      
  def _set_tx_262145_524288(self, v, load=False):
    """
    Setter method for tx_262145_524288, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_data_dist/tx_262145_524288 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tx_262145_524288 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tx_262145_524288() directly.

    YANG Description: Transmitted AMPDU from 262145 to 524288 Bytes.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-262145-524288", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tx_262145_524288 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-262145-524288", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__tx_262145_524288 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_tx_262145_524288(self):
    self.__tx_262145_524288 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-262145-524288", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_tx_524289_1048576(self):
    """
    Getter method for tx_524289_1048576, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_data_dist/tx_524289_1048576 (oc-yang:counter64)

    YANG Description: Transmitted AMPDU from 524289 to 1048576 Bytes.
    """
    return self.__tx_524289_1048576
      
  def _set_tx_524289_1048576(self, v, load=False):
    """
    Setter method for tx_524289_1048576, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_data_dist/tx_524289_1048576 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tx_524289_1048576 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tx_524289_1048576() directly.

    YANG Description: Transmitted AMPDU from 524289 to 1048576 Bytes.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-524289-1048576", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tx_524289_1048576 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-524289-1048576", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__tx_524289_1048576 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_tx_524289_1048576(self):
    self.__tx_524289_1048576 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-524289-1048576", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)

  tx_0_64 = __builtin__.property(_get_tx_0_64)
  tx_65_128 = __builtin__.property(_get_tx_65_128)
  tx_129_256 = __builtin__.property(_get_tx_129_256)
  tx_257_512 = __builtin__.property(_get_tx_257_512)
  tx_513_1024 = __builtin__.property(_get_tx_513_1024)
  tx_1025_2048 = __builtin__.property(_get_tx_1025_2048)
  tx_2049_4096 = __builtin__.property(_get_tx_2049_4096)
  tx_4097_8192 = __builtin__.property(_get_tx_4097_8192)
  tx_8193_16384 = __builtin__.property(_get_tx_8193_16384)
  tx_16385_32768 = __builtin__.property(_get_tx_16385_32768)
  tx_32769_65536 = __builtin__.property(_get_tx_32769_65536)
  tx_65537_131072 = __builtin__.property(_get_tx_65537_131072)
  tx_131073_262144 = __builtin__.property(_get_tx_131073_262144)
  tx_262145_524288 = __builtin__.property(_get_tx_262145_524288)
  tx_524289_1048576 = __builtin__.property(_get_tx_524289_1048576)


  _pyangbind_elements = OrderedDict([('tx_0_64', tx_0_64), ('tx_65_128', tx_65_128), ('tx_129_256', tx_129_256), ('tx_257_512', tx_257_512), ('tx_513_1024', tx_513_1024), ('tx_1025_2048', tx_1025_2048), ('tx_2049_4096', tx_2049_4096), ('tx_4097_8192', tx_4097_8192), ('tx_8193_16384', tx_8193_16384), ('tx_16385_32768', tx_16385_32768), ('tx_32769_65536', tx_32769_65536), ('tx_65537_131072', tx_65537_131072), ('tx_131073_262144', tx_131073_262144), ('tx_262145_524288', tx_262145_524288), ('tx_524289_1048576', tx_524289_1048576), ])


class yc_tx_data_wmm_openconfig_access_points__access_points_access_point_ssids_ssid_bssids_bssid_state_counters_tx_data_wmm(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/ssids/ssid/bssids/bssid/state/counters/tx-data-wmm. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Transmitted QoS Data frames, per WMM AC.
  """
  __slots__ = ('_path_helper', '_extmethods', '__vi','__vo','__bk','__be',)

  _yang_name = 'tx-data-wmm'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__vi = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="vi", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__vo = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="vo", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__bk = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="bk", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__be = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="be", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', 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 ['access-points', 'access-point', 'ssids', 'ssid', 'bssids', 'bssid', 'state', 'counters', 'tx-data-wmm']

  def _get_vi(self):
    """
    Getter method for vi, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_data_wmm/vi (oc-yang:counter64)

    YANG Description: Tx Data frames marked as Access Category Video.
    """
    return self.__vi
      
  def _set_vi(self, v, load=False):
    """
    Setter method for vi, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_data_wmm/vi (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_vi is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_vi() directly.

    YANG Description: Tx Data frames marked as Access Category Video.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="vi", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """vi must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="vi", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__vi = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_vi(self):
    self.__vi = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="vi", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_vo(self):
    """
    Getter method for vo, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_data_wmm/vo (oc-yang:counter64)

    YANG Description: Tx Data frames marked as Access Category Voice.
    """
    return self.__vo
      
  def _set_vo(self, v, load=False):
    """
    Setter method for vo, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_data_wmm/vo (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_vo is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_vo() directly.

    YANG Description: Tx Data frames marked as Access Category Voice.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="vo", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """vo must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="vo", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__vo = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_vo(self):
    self.__vo = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="vo", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_bk(self):
    """
    Getter method for bk, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_data_wmm/bk (oc-yang:counter64)

    YANG Description: Tx Data frames marked as Access Category Background.
    """
    return self.__bk
      
  def _set_bk(self, v, load=False):
    """
    Setter method for bk, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_data_wmm/bk (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_bk is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_bk() directly.

    YANG Description: Tx Data frames marked as Access Category Background.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="bk", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """bk must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="bk", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__bk = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_bk(self):
    self.__bk = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="bk", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_be(self):
    """
    Getter method for be, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_data_wmm/be (oc-yang:counter64)

    YANG Description: Tx Data frames marked as Access Category Best Effort.
    """
    return self.__be
      
  def _set_be(self, v, load=False):
    """
    Setter method for be, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_data_wmm/be (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_be is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_be() directly.

    YANG Description: Tx Data frames marked as Access Category Best Effort.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="be", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """be must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="be", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__be = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_be(self):
    self.__be = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="be", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)

  vi = __builtin__.property(_get_vi)
  vo = __builtin__.property(_get_vo)
  bk = __builtin__.property(_get_bk)
  be = __builtin__.property(_get_be)


  _pyangbind_elements = OrderedDict([('vi', vi), ('vo', vo), ('bk', bk), ('be', be), ])


class yc_tx_mcs_openconfig_access_points__access_points_access_point_ssids_ssid_bssids_bssid_state_counters_tx_mcs(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/ssids/ssid/bssids/bssid/state/counters/tx-mcs. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Transmitted Data frames, per MCS Index. It is expected that
vendors bucketize 802.11n MCS frames in their matching
802.11ac buckets.

Example, 802.11n MCS 15 = 802.11ac MCS 7.
802.11n MCS 20 = 802.11ac MCS 4.
  """
  __slots__ = ('_path_helper', '_extmethods', '__mcs0','__mcs1','__mcs2','__mcs3','__mcs4','__mcs5','__mcs6','__mcs7','__mcs8','__mcs9','__mcs10','__mcs11',)

  _yang_name = 'tx-mcs'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__mcs0 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs0", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__mcs1 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs1", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__mcs2 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs2", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__mcs3 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs3", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__mcs4 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs4", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__mcs5 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs5", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__mcs6 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs6", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__mcs7 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs7", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__mcs8 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs8", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__mcs9 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs9", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__mcs10 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs10", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__mcs11 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs11", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', 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 ['access-points', 'access-point', 'ssids', 'ssid', 'bssids', 'bssid', 'state', 'counters', 'tx-mcs']

  def _get_mcs0(self):
    """
    Getter method for mcs0, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_mcs/mcs0 (oc-yang:counter64)

    YANG Description: Tx Data frames at MCS 0.
    """
    return self.__mcs0
      
  def _set_mcs0(self, v, load=False):
    """
    Setter method for mcs0, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_mcs/mcs0 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mcs0 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mcs0() directly.

    YANG Description: Tx Data frames at MCS 0.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs0", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mcs0 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs0", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__mcs0 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mcs0(self):
    self.__mcs0 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs0", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_mcs1(self):
    """
    Getter method for mcs1, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_mcs/mcs1 (oc-yang:counter64)

    YANG Description: Tx Data frames at MCS 1.
    """
    return self.__mcs1
      
  def _set_mcs1(self, v, load=False):
    """
    Setter method for mcs1, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_mcs/mcs1 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mcs1 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mcs1() directly.

    YANG Description: Tx Data frames at MCS 1.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs1", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mcs1 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs1", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__mcs1 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mcs1(self):
    self.__mcs1 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs1", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_mcs2(self):
    """
    Getter method for mcs2, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_mcs/mcs2 (oc-yang:counter64)

    YANG Description: Tx Data frames at MCS 2.
    """
    return self.__mcs2
      
  def _set_mcs2(self, v, load=False):
    """
    Setter method for mcs2, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_mcs/mcs2 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mcs2 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mcs2() directly.

    YANG Description: Tx Data frames at MCS 2.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs2", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mcs2 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs2", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__mcs2 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mcs2(self):
    self.__mcs2 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs2", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_mcs3(self):
    """
    Getter method for mcs3, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_mcs/mcs3 (oc-yang:counter64)

    YANG Description: Tx Data frames at MCS 3.
    """
    return self.__mcs3
      
  def _set_mcs3(self, v, load=False):
    """
    Setter method for mcs3, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_mcs/mcs3 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mcs3 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mcs3() directly.

    YANG Description: Tx Data frames at MCS 3.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs3", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mcs3 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs3", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__mcs3 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mcs3(self):
    self.__mcs3 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs3", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_mcs4(self):
    """
    Getter method for mcs4, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_mcs/mcs4 (oc-yang:counter64)

    YANG Description: Tx Data frames at MCS 4.
    """
    return self.__mcs4
      
  def _set_mcs4(self, v, load=False):
    """
    Setter method for mcs4, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_mcs/mcs4 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mcs4 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mcs4() directly.

    YANG Description: Tx Data frames at MCS 4.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs4", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mcs4 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs4", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__mcs4 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mcs4(self):
    self.__mcs4 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs4", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_mcs5(self):
    """
    Getter method for mcs5, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_mcs/mcs5 (oc-yang:counter64)

    YANG Description: Tx Data frames at MCS 5.
    """
    return self.__mcs5
      
  def _set_mcs5(self, v, load=False):
    """
    Setter method for mcs5, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_mcs/mcs5 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mcs5 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mcs5() directly.

    YANG Description: Tx Data frames at MCS 5.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs5", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mcs5 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs5", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__mcs5 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mcs5(self):
    self.__mcs5 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs5", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_mcs6(self):
    """
    Getter method for mcs6, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_mcs/mcs6 (oc-yang:counter64)

    YANG Description: Tx Data frames at MCS 6.
    """
    return self.__mcs6
      
  def _set_mcs6(self, v, load=False):
    """
    Setter method for mcs6, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_mcs/mcs6 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mcs6 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mcs6() directly.

    YANG Description: Tx Data frames at MCS 6.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs6", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mcs6 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs6", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__mcs6 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mcs6(self):
    self.__mcs6 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs6", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_mcs7(self):
    """
    Getter method for mcs7, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_mcs/mcs7 (oc-yang:counter64)

    YANG Description: Tx Data frames at MCS 7.
    """
    return self.__mcs7
      
  def _set_mcs7(self, v, load=False):
    """
    Setter method for mcs7, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_mcs/mcs7 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mcs7 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mcs7() directly.

    YANG Description: Tx Data frames at MCS 7.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs7", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mcs7 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs7", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__mcs7 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mcs7(self):
    self.__mcs7 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs7", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_mcs8(self):
    """
    Getter method for mcs8, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_mcs/mcs8 (oc-yang:counter64)

    YANG Description: Tx Data frames at MCS 8.
    """
    return self.__mcs8
      
  def _set_mcs8(self, v, load=False):
    """
    Setter method for mcs8, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_mcs/mcs8 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mcs8 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mcs8() directly.

    YANG Description: Tx Data frames at MCS 8.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs8", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mcs8 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs8", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__mcs8 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mcs8(self):
    self.__mcs8 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs8", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_mcs9(self):
    """
    Getter method for mcs9, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_mcs/mcs9 (oc-yang:counter64)

    YANG Description: Tx Data frames at MCS 9.
    """
    return self.__mcs9
      
  def _set_mcs9(self, v, load=False):
    """
    Setter method for mcs9, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_mcs/mcs9 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mcs9 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mcs9() directly.

    YANG Description: Tx Data frames at MCS 9.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs9", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mcs9 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs9", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__mcs9 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mcs9(self):
    self.__mcs9 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs9", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_mcs10(self):
    """
    Getter method for mcs10, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_mcs/mcs10 (oc-yang:counter64)

    YANG Description: Tx Data frames at MCS 10.
    """
    return self.__mcs10
      
  def _set_mcs10(self, v, load=False):
    """
    Setter method for mcs10, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_mcs/mcs10 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mcs10 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mcs10() directly.

    YANG Description: Tx Data frames at MCS 10.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs10", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mcs10 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs10", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__mcs10 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mcs10(self):
    self.__mcs10 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs10", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_mcs11(self):
    """
    Getter method for mcs11, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_mcs/mcs11 (oc-yang:counter64)

    YANG Description: Tx Data frames at MCS 11.
    """
    return self.__mcs11
      
  def _set_mcs11(self, v, load=False):
    """
    Setter method for mcs11, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_mcs/mcs11 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mcs11 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mcs11() directly.

    YANG Description: Tx Data frames at MCS 11.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs11", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mcs11 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs11", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__mcs11 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mcs11(self):
    self.__mcs11 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs11", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)

  mcs0 = __builtin__.property(_get_mcs0)
  mcs1 = __builtin__.property(_get_mcs1)
  mcs2 = __builtin__.property(_get_mcs2)
  mcs3 = __builtin__.property(_get_mcs3)
  mcs4 = __builtin__.property(_get_mcs4)
  mcs5 = __builtin__.property(_get_mcs5)
  mcs6 = __builtin__.property(_get_mcs6)
  mcs7 = __builtin__.property(_get_mcs7)
  mcs8 = __builtin__.property(_get_mcs8)
  mcs9 = __builtin__.property(_get_mcs9)
  mcs10 = __builtin__.property(_get_mcs10)
  mcs11 = __builtin__.property(_get_mcs11)


  _pyangbind_elements = OrderedDict([('mcs0', mcs0), ('mcs1', mcs1), ('mcs2', mcs2), ('mcs3', mcs3), ('mcs4', mcs4), ('mcs5', mcs5), ('mcs6', mcs6), ('mcs7', mcs7), ('mcs8', mcs8), ('mcs9', mcs9), ('mcs10', mcs10), ('mcs11', mcs11), ])


class yc_counters_openconfig_access_points__access_points_access_point_ssids_ssid_bssids_bssid_state_counters(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/ssids/ssid/bssids/bssid/state/counters. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: BSS Counters.
  """
  __slots__ = ('_path_helper', '_extmethods', '__rx_bss_dot11_channel_utilization','__rx_mgmt','__rx_control','__rx_data_dist','__rx_data_wmm','__rx_mcs','__rx_retries','__rx_total_frames','__rx_retries_data','__rx_total_data','__rx_retries_subframe','__rx_total_subframe','__rx_bytes_data','__tx_bss_dot11_channel_utilization','__tx_mgmt','__tx_control','__tx_data_dist','__tx_data_wmm','__tx_mcs','__tx_retries','__tx_total_frames','__tx_retries_data','__tx_total_data','__tx_retries_subframe','__tx_total_subframe','__tx_bytes_data','__bss_channel_utilization',)

  _yang_name = 'counters'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__rx_bss_dot11_channel_utilization = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="rx-bss-dot11-channel-utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    self.__rx_mgmt = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-mgmt", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__rx_control = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-control", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__rx_data_dist = YANGDynClass(base=yc_rx_data_dist_openconfig_access_points__access_points_access_point_ssids_ssid_bssids_bssid_state_counters_rx_data_dist, is_container='container', yang_name="rx-data-dist", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)
    self.__rx_data_wmm = YANGDynClass(base=yc_rx_data_wmm_openconfig_access_points__access_points_access_point_ssids_ssid_bssids_bssid_state_counters_rx_data_wmm, is_container='container', yang_name="rx-data-wmm", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)
    self.__rx_mcs = YANGDynClass(base=yc_rx_mcs_openconfig_access_points__access_points_access_point_ssids_ssid_bssids_bssid_state_counters_rx_mcs, is_container='container', yang_name="rx-mcs", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)
    self.__rx_retries = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-retries", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__rx_total_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-total-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__rx_retries_data = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-retries-data", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__rx_total_data = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-total-data", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__rx_retries_subframe = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-retries-subframe", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__rx_total_subframe = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-total-subframe", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__rx_bytes_data = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-bytes-data", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__tx_bss_dot11_channel_utilization = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="tx-bss-dot11-channel-utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    self.__tx_mgmt = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-mgmt", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__tx_control = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-control", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__tx_data_dist = YANGDynClass(base=yc_tx_data_dist_openconfig_access_points__access_points_access_point_ssids_ssid_bssids_bssid_state_counters_tx_data_dist, is_container='container', yang_name="tx-data-dist", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)
    self.__tx_data_wmm = YANGDynClass(base=yc_tx_data_wmm_openconfig_access_points__access_points_access_point_ssids_ssid_bssids_bssid_state_counters_tx_data_wmm, is_container='container', yang_name="tx-data-wmm", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)
    self.__tx_mcs = YANGDynClass(base=yc_tx_mcs_openconfig_access_points__access_points_access_point_ssids_ssid_bssids_bssid_state_counters_tx_mcs, is_container='container', yang_name="tx-mcs", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)
    self.__tx_retries = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-retries", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__tx_total_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-total-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__tx_retries_data = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-retries-data", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__tx_total_data = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-total-data", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__tx_retries_subframe = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-retries-subframe", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__tx_total_subframe = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-total-subframe", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__tx_bytes_data = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-bytes-data", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__bss_channel_utilization = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="bss-channel-utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', 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 ['access-points', 'access-point', 'ssids', 'ssid', 'bssids', 'bssid', 'state', 'counters']

  def _get_rx_bss_dot11_channel_utilization(self):
    """
    Getter method for rx_bss_dot11_channel_utilization, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_bss_dot11_channel_utilization (oc-types:percentage)

    YANG Description: receive channel utilization percent caused by reception of
any 802.11 frame within this BSS.
    """
    return self.__rx_bss_dot11_channel_utilization
      
  def _set_rx_bss_dot11_channel_utilization(self, v, load=False):
    """
    Setter method for rx_bss_dot11_channel_utilization, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_bss_dot11_channel_utilization (oc-types:percentage)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_bss_dot11_channel_utilization is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_bss_dot11_channel_utilization() directly.

    YANG Description: receive channel utilization percent caused by reception of
any 802.11 frame within this BSS.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="rx-bss-dot11-channel-utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_bss_dot11_channel_utilization must be of a type compatible with oc-types:percentage""",
          'defined-type': "oc-types:percentage",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="rx-bss-dot11-channel-utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)""",
        })

    self.__rx_bss_dot11_channel_utilization = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rx_bss_dot11_channel_utilization(self):
    self.__rx_bss_dot11_channel_utilization = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="rx-bss-dot11-channel-utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)


  def _get_rx_mgmt(self):
    """
    Getter method for rx_mgmt, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_mgmt (oc-yang:counter64)

    YANG Description: Received 802.11 Management frames.
    """
    return self.__rx_mgmt
      
  def _set_rx_mgmt(self, v, load=False):
    """
    Setter method for rx_mgmt, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_mgmt (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_mgmt is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_mgmt() directly.

    YANG Description: Received 802.11 Management frames.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-mgmt", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_mgmt must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-mgmt", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__rx_mgmt = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rx_mgmt(self):
    self.__rx_mgmt = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-mgmt", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_rx_control(self):
    """
    Getter method for rx_control, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_control (oc-yang:counter64)

    YANG Description: Received 802.11 Control frames.
    """
    return self.__rx_control
      
  def _set_rx_control(self, v, load=False):
    """
    Setter method for rx_control, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_control (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_control is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_control() directly.

    YANG Description: Received 802.11 Control frames.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-control", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_control must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-control", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__rx_control = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rx_control(self):
    self.__rx_control = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-control", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_rx_data_dist(self):
    """
    Getter method for rx_data_dist, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_data_dist (container)

    YANG Description: The distribution of Data frame sizes in bytes of
successfully received AMPDU, or MPDU for non-aggregated,
frames. The distribution should characterize frame sizes
starting at 64 bytes or less with the bin size doubling for
each successive bin to a maximum of 1MB or larger, as
represented in the following table:

Lower Bound Upper Bound
  0          64
  65         128
  129        256
  257        512
  513        1024
  1025       2048
  2049       4096
  4097       8192
  8193       16384
  16385      32768
  32769      65536
  65537      131072
  131073     262144
  262145     524288
  524289     1048576
    """
    return self.__rx_data_dist
      
  def _set_rx_data_dist(self, v, load=False):
    """
    Setter method for rx_data_dist, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_data_dist (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_data_dist is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_data_dist() directly.

    YANG Description: The distribution of Data frame sizes in bytes of
successfully received AMPDU, or MPDU for non-aggregated,
frames. The distribution should characterize frame sizes
starting at 64 bytes or less with the bin size doubling for
each successive bin to a maximum of 1MB or larger, as
represented in the following table:

Lower Bound Upper Bound
  0          64
  65         128
  129        256
  257        512
  513        1024
  1025       2048
  2049       4096
  4097       8192
  8193       16384
  16385      32768
  32769      65536
  65537      131072
  131073     262144
  262145     524288
  524289     1048576
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_rx_data_dist_openconfig_access_points__access_points_access_point_ssids_ssid_bssids_bssid_state_counters_rx_data_dist, is_container='container', yang_name="rx-data-dist", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_data_dist must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_rx_data_dist_openconfig_access_points__access_points_access_point_ssids_ssid_bssids_bssid_state_counters_rx_data_dist, is_container='container', yang_name="rx-data-dist", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)""",
        })

    self.__rx_data_dist = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rx_data_dist(self):
    self.__rx_data_dist = YANGDynClass(base=yc_rx_data_dist_openconfig_access_points__access_points_access_point_ssids_ssid_bssids_bssid_state_counters_rx_data_dist, is_container='container', yang_name="rx-data-dist", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)


  def _get_rx_data_wmm(self):
    """
    Getter method for rx_data_wmm, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_data_wmm (container)

    YANG Description: Received 802.11 Data frames, per WMM Access Category.
    """
    return self.__rx_data_wmm
      
  def _set_rx_data_wmm(self, v, load=False):
    """
    Setter method for rx_data_wmm, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_data_wmm (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_data_wmm is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_data_wmm() directly.

    YANG Description: Received 802.11 Data frames, per WMM Access Category.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_rx_data_wmm_openconfig_access_points__access_points_access_point_ssids_ssid_bssids_bssid_state_counters_rx_data_wmm, is_container='container', yang_name="rx-data-wmm", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_data_wmm must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_rx_data_wmm_openconfig_access_points__access_points_access_point_ssids_ssid_bssids_bssid_state_counters_rx_data_wmm, is_container='container', yang_name="rx-data-wmm", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)""",
        })

    self.__rx_data_wmm = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rx_data_wmm(self):
    self.__rx_data_wmm = YANGDynClass(base=yc_rx_data_wmm_openconfig_access_points__access_points_access_point_ssids_ssid_bssids_bssid_state_counters_rx_data_wmm, is_container='container', yang_name="rx-data-wmm", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)


  def _get_rx_mcs(self):
    """
    Getter method for rx_mcs, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_mcs (container)

    YANG Description: Received Data frames, per MCS Index. It is expected that
vendors bucketize 802.11n MCS frames in their matching
802.11ac buckets.

Example, 802.11n MCS 15 = 802.11ac MCS 7.
802.11n MCS 20 = 802.11ac MCS 4.
    """
    return self.__rx_mcs
      
  def _set_rx_mcs(self, v, load=False):
    """
    Setter method for rx_mcs, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_mcs (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_mcs is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_mcs() directly.

    YANG Description: Received Data frames, per MCS Index. It is expected that
vendors bucketize 802.11n MCS frames in their matching
802.11ac buckets.

Example, 802.11n MCS 15 = 802.11ac MCS 7.
802.11n MCS 20 = 802.11ac MCS 4.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_rx_mcs_openconfig_access_points__access_points_access_point_ssids_ssid_bssids_bssid_state_counters_rx_mcs, is_container='container', yang_name="rx-mcs", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_mcs must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_rx_mcs_openconfig_access_points__access_points_access_point_ssids_ssid_bssids_bssid_state_counters_rx_mcs, is_container='container', yang_name="rx-mcs", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)""",
        })

    self.__rx_mcs = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rx_mcs(self):
    self.__rx_mcs = YANGDynClass(base=yc_rx_mcs_openconfig_access_points__access_points_access_point_ssids_ssid_bssids_bssid_state_counters_rx_mcs, is_container='container', yang_name="rx-mcs", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)


  def _get_rx_retries(self):
    """
    Getter method for rx_retries, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_retries (oc-yang:counter64)

    YANG Description: Total number of received frames with the Retry bit set,
within this BSS.
    """
    return self.__rx_retries
      
  def _set_rx_retries(self, v, load=False):
    """
    Setter method for rx_retries, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_retries (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_retries is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_retries() directly.

    YANG Description: Total number of received frames with the Retry bit set,
within this BSS.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-retries", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_retries must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-retries", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__rx_retries = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rx_retries(self):
    self.__rx_retries = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-retries", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_rx_total_frames(self):
    """
    Getter method for rx_total_frames, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_total_frames (oc-yang:counter64)

    YANG Description: Total number of received frames within this BSS.
    """
    return self.__rx_total_frames
      
  def _set_rx_total_frames(self, v, load=False):
    """
    Setter method for rx_total_frames, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_total_frames (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_total_frames is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_total_frames() directly.

    YANG Description: Total number of received frames within this BSS.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-total-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_total_frames must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-total-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__rx_total_frames = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rx_total_frames(self):
    self.__rx_total_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-total-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_rx_retries_data(self):
    """
    Getter method for rx_retries_data, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_retries_data (oc-yang:counter64)

    YANG Description: Number of received QoS Data frames with the Retry bit set.
    """
    return self.__rx_retries_data
      
  def _set_rx_retries_data(self, v, load=False):
    """
    Setter method for rx_retries_data, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_retries_data (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_retries_data is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_retries_data() directly.

    YANG Description: Number of received QoS Data frames with the Retry bit set.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-retries-data", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_retries_data must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-retries-data", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__rx_retries_data = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rx_retries_data(self):
    self.__rx_retries_data = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-retries-data", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_rx_total_data(self):
    """
    Getter method for rx_total_data, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_total_data (oc-yang:counter64)

    YANG Description: Number of received QoS Data frames.
    """
    return self.__rx_total_data
      
  def _set_rx_total_data(self, v, load=False):
    """
    Setter method for rx_total_data, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_total_data (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_total_data is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_total_data() directly.

    YANG Description: Number of received QoS Data frames.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-total-data", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_total_data must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-total-data", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__rx_total_data = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rx_total_data(self):
    self.__rx_total_data = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-total-data", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_rx_retries_subframe(self):
    """
    Getter method for rx_retries_subframe, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_retries_subframe (oc-yang:counter64)

    YANG Description: Aggregated MPDUs which had individual subframes that fail
and require retransmission.
    """
    return self.__rx_retries_subframe
      
  def _set_rx_retries_subframe(self, v, load=False):
    """
    Setter method for rx_retries_subframe, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_retries_subframe (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_retries_subframe is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_retries_subframe() directly.

    YANG Description: Aggregated MPDUs which had individual subframes that fail
and require retransmission.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-retries-subframe", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_retries_subframe must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-retries-subframe", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__rx_retries_subframe = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rx_retries_subframe(self):
    self.__rx_retries_subframe = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-retries-subframe", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_rx_total_subframe(self):
    """
    Getter method for rx_total_subframe, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_total_subframe (oc-yang:counter64)

    YANG Description: Total Aggregated MPDUs received.
    """
    return self.__rx_total_subframe
      
  def _set_rx_total_subframe(self, v, load=False):
    """
    Setter method for rx_total_subframe, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_total_subframe (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_total_subframe is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_total_subframe() directly.

    YANG Description: Total Aggregated MPDUs received.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-total-subframe", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_total_subframe must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-total-subframe", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__rx_total_subframe = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rx_total_subframe(self):
    self.__rx_total_subframe = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-total-subframe", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_rx_bytes_data(self):
    """
    Getter method for rx_bytes_data, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_bytes_data (oc-yang:counter64)

    YANG Description: Bytes received from QoS Data frames.
    """
    return self.__rx_bytes_data
      
  def _set_rx_bytes_data(self, v, load=False):
    """
    Setter method for rx_bytes_data, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/rx_bytes_data (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_bytes_data is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_bytes_data() directly.

    YANG Description: Bytes received from QoS Data frames.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-bytes-data", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_bytes_data must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-bytes-data", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__rx_bytes_data = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rx_bytes_data(self):
    self.__rx_bytes_data = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-bytes-data", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_tx_bss_dot11_channel_utilization(self):
    """
    Getter method for tx_bss_dot11_channel_utilization, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_bss_dot11_channel_utilization (oc-types:percentage)

    YANG Description: Channel utilization percent caused by transmission of any
802.11 frame within this BSS.
    """
    return self.__tx_bss_dot11_channel_utilization
      
  def _set_tx_bss_dot11_channel_utilization(self, v, load=False):
    """
    Setter method for tx_bss_dot11_channel_utilization, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_bss_dot11_channel_utilization (oc-types:percentage)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tx_bss_dot11_channel_utilization is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tx_bss_dot11_channel_utilization() directly.

    YANG Description: Channel utilization percent caused by transmission of any
802.11 frame within this BSS.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="tx-bss-dot11-channel-utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tx_bss_dot11_channel_utilization must be of a type compatible with oc-types:percentage""",
          'defined-type': "oc-types:percentage",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="tx-bss-dot11-channel-utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)""",
        })

    self.__tx_bss_dot11_channel_utilization = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_tx_bss_dot11_channel_utilization(self):
    self.__tx_bss_dot11_channel_utilization = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="tx-bss-dot11-channel-utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)


  def _get_tx_mgmt(self):
    """
    Getter method for tx_mgmt, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_mgmt (oc-yang:counter64)

    YANG Description: Transmitted 802.11 Management frames.
    """
    return self.__tx_mgmt
      
  def _set_tx_mgmt(self, v, load=False):
    """
    Setter method for tx_mgmt, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_mgmt (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tx_mgmt is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tx_mgmt() directly.

    YANG Description: Transmitted 802.11 Management frames.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-mgmt", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tx_mgmt must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-mgmt", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__tx_mgmt = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_tx_mgmt(self):
    self.__tx_mgmt = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-mgmt", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_tx_control(self):
    """
    Getter method for tx_control, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_control (oc-yang:counter64)

    YANG Description: Transmitted 802.11 Control frames.
    """
    return self.__tx_control
      
  def _set_tx_control(self, v, load=False):
    """
    Setter method for tx_control, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_control (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tx_control is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tx_control() directly.

    YANG Description: Transmitted 802.11 Control frames.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-control", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tx_control must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-control", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__tx_control = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_tx_control(self):
    self.__tx_control = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-control", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_tx_data_dist(self):
    """
    Getter method for tx_data_dist, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_data_dist (container)

    YANG Description: The distribution of Data frame sizes in bytes of
successfully transmitted AMPDU, or MPDU for non-aggregated,
frames. The distribution should characterize frame sizes
starting at 64 bytes or less with the bin size doubling for
each successive bin to a maximum of 1MB or larger, as
represented in the following table:

Lower Bound Upper Bound
  0          64
  65         128
  129        256
  257        512
  513        1024
  1025       2048
  2049       4096
  4097       8192
  8193       16384
  16385      32768
  32769      65536
  65537      131072
  131073     262144
  262145     524288
  524289     1048576
    """
    return self.__tx_data_dist
      
  def _set_tx_data_dist(self, v, load=False):
    """
    Setter method for tx_data_dist, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_data_dist (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tx_data_dist is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tx_data_dist() directly.

    YANG Description: The distribution of Data frame sizes in bytes of
successfully transmitted AMPDU, or MPDU for non-aggregated,
frames. The distribution should characterize frame sizes
starting at 64 bytes or less with the bin size doubling for
each successive bin to a maximum of 1MB or larger, as
represented in the following table:

Lower Bound Upper Bound
  0          64
  65         128
  129        256
  257        512
  513        1024
  1025       2048
  2049       4096
  4097       8192
  8193       16384
  16385      32768
  32769      65536
  65537      131072
  131073     262144
  262145     524288
  524289     1048576
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_tx_data_dist_openconfig_access_points__access_points_access_point_ssids_ssid_bssids_bssid_state_counters_tx_data_dist, is_container='container', yang_name="tx-data-dist", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tx_data_dist must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_tx_data_dist_openconfig_access_points__access_points_access_point_ssids_ssid_bssids_bssid_state_counters_tx_data_dist, is_container='container', yang_name="tx-data-dist", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)""",
        })

    self.__tx_data_dist = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_tx_data_dist(self):
    self.__tx_data_dist = YANGDynClass(base=yc_tx_data_dist_openconfig_access_points__access_points_access_point_ssids_ssid_bssids_bssid_state_counters_tx_data_dist, is_container='container', yang_name="tx-data-dist", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)


  def _get_tx_data_wmm(self):
    """
    Getter method for tx_data_wmm, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_data_wmm (container)

    YANG Description: Transmitted QoS Data frames, per WMM AC.
    """
    return self.__tx_data_wmm
      
  def _set_tx_data_wmm(self, v, load=False):
    """
    Setter method for tx_data_wmm, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_data_wmm (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tx_data_wmm is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tx_data_wmm() directly.

    YANG Description: Transmitted QoS Data frames, per WMM AC.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_tx_data_wmm_openconfig_access_points__access_points_access_point_ssids_ssid_bssids_bssid_state_counters_tx_data_wmm, is_container='container', yang_name="tx-data-wmm", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tx_data_wmm must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_tx_data_wmm_openconfig_access_points__access_points_access_point_ssids_ssid_bssids_bssid_state_counters_tx_data_wmm, is_container='container', yang_name="tx-data-wmm", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)""",
        })

    self.__tx_data_wmm = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_tx_data_wmm(self):
    self.__tx_data_wmm = YANGDynClass(base=yc_tx_data_wmm_openconfig_access_points__access_points_access_point_ssids_ssid_bssids_bssid_state_counters_tx_data_wmm, is_container='container', yang_name="tx-data-wmm", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)


  def _get_tx_mcs(self):
    """
    Getter method for tx_mcs, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_mcs (container)

    YANG Description: Transmitted Data frames, per MCS Index. It is expected that
vendors bucketize 802.11n MCS frames in their matching
802.11ac buckets.

Example, 802.11n MCS 15 = 802.11ac MCS 7.
802.11n MCS 20 = 802.11ac MCS 4.
    """
    return self.__tx_mcs
      
  def _set_tx_mcs(self, v, load=False):
    """
    Setter method for tx_mcs, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_mcs (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tx_mcs is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tx_mcs() directly.

    YANG Description: Transmitted Data frames, per MCS Index. It is expected that
vendors bucketize 802.11n MCS frames in their matching
802.11ac buckets.

Example, 802.11n MCS 15 = 802.11ac MCS 7.
802.11n MCS 20 = 802.11ac MCS 4.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_tx_mcs_openconfig_access_points__access_points_access_point_ssids_ssid_bssids_bssid_state_counters_tx_mcs, is_container='container', yang_name="tx-mcs", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tx_mcs must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_tx_mcs_openconfig_access_points__access_points_access_point_ssids_ssid_bssids_bssid_state_counters_tx_mcs, is_container='container', yang_name="tx-mcs", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)""",
        })

    self.__tx_mcs = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_tx_mcs(self):
    self.__tx_mcs = YANGDynClass(base=yc_tx_mcs_openconfig_access_points__access_points_access_point_ssids_ssid_bssids_bssid_state_counters_tx_mcs, is_container='container', yang_name="tx-mcs", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)


  def _get_tx_retries(self):
    """
    Getter method for tx_retries, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_retries (oc-yang:counter64)

    YANG Description: Number of frames transmitted with the Retry bit set.
    """
    return self.__tx_retries
      
  def _set_tx_retries(self, v, load=False):
    """
    Setter method for tx_retries, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_retries (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tx_retries is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tx_retries() directly.

    YANG Description: Number of frames transmitted with the Retry bit set.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-retries", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tx_retries must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-retries", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__tx_retries = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_tx_retries(self):
    self.__tx_retries = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-retries", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_tx_total_frames(self):
    """
    Getter method for tx_total_frames, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_total_frames (oc-yang:counter64)

    YANG Description: Number of frames transmitted.
    """
    return self.__tx_total_frames
      
  def _set_tx_total_frames(self, v, load=False):
    """
    Setter method for tx_total_frames, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_total_frames (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tx_total_frames is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tx_total_frames() directly.

    YANG Description: Number of frames transmitted.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-total-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tx_total_frames must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-total-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__tx_total_frames = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_tx_total_frames(self):
    self.__tx_total_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-total-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_tx_retries_data(self):
    """
    Getter method for tx_retries_data, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_retries_data (oc-yang:counter64)

    YANG Description: Number of transmitted QoS Data frames with the Retry bit
set.
    """
    return self.__tx_retries_data
      
  def _set_tx_retries_data(self, v, load=False):
    """
    Setter method for tx_retries_data, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_retries_data (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tx_retries_data is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tx_retries_data() directly.

    YANG Description: Number of transmitted QoS Data frames with the Retry bit
set.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-retries-data", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tx_retries_data must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-retries-data", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__tx_retries_data = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_tx_retries_data(self):
    self.__tx_retries_data = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-retries-data", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_tx_total_data(self):
    """
    Getter method for tx_total_data, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_total_data (oc-yang:counter64)

    YANG Description: Number of transmitted QoS Data frames.
    """
    return self.__tx_total_data
      
  def _set_tx_total_data(self, v, load=False):
    """
    Setter method for tx_total_data, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_total_data (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tx_total_data is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tx_total_data() directly.

    YANG Description: Number of transmitted QoS Data frames.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-total-data", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tx_total_data must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-total-data", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__tx_total_data = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_tx_total_data(self):
    self.__tx_total_data = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-total-data", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_tx_retries_subframe(self):
    """
    Getter method for tx_retries_subframe, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_retries_subframe (oc-yang:counter64)

    YANG Description: Aggregated MPDUs which had individual subframes that fail
and require retransmission.
    """
    return self.__tx_retries_subframe
      
  def _set_tx_retries_subframe(self, v, load=False):
    """
    Setter method for tx_retries_subframe, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_retries_subframe (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tx_retries_subframe is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tx_retries_subframe() directly.

    YANG Description: Aggregated MPDUs which had individual subframes that fail
and require retransmission.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-retries-subframe", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tx_retries_subframe must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-retries-subframe", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__tx_retries_subframe = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_tx_retries_subframe(self):
    self.__tx_retries_subframe = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-retries-subframe", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_tx_total_subframe(self):
    """
    Getter method for tx_total_subframe, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_total_subframe (oc-yang:counter64)

    YANG Description: Aggregated MPDUs total frames transmitted.
    """
    return self.__tx_total_subframe
      
  def _set_tx_total_subframe(self, v, load=False):
    """
    Setter method for tx_total_subframe, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_total_subframe (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tx_total_subframe is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tx_total_subframe() directly.

    YANG Description: Aggregated MPDUs total frames transmitted.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-total-subframe", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tx_total_subframe must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-total-subframe", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__tx_total_subframe = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_tx_total_subframe(self):
    self.__tx_total_subframe = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-total-subframe", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_tx_bytes_data(self):
    """
    Getter method for tx_bytes_data, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_bytes_data (oc-yang:counter64)

    YANG Description: Bytes transmitted from QoS Data frames.
    """
    return self.__tx_bytes_data
      
  def _set_tx_bytes_data(self, v, load=False):
    """
    Setter method for tx_bytes_data, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/tx_bytes_data (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tx_bytes_data is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tx_bytes_data() directly.

    YANG Description: Bytes transmitted from QoS Data frames.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-bytes-data", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tx_bytes_data must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-bytes-data", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__tx_bytes_data = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_tx_bytes_data(self):
    self.__tx_bytes_data = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-bytes-data", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_bss_channel_utilization(self):
    """
    Getter method for bss_channel_utilization, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/bss_channel_utilization (oc-types:percentage)

    YANG Description: Total 802.11 channel utilization in this BSS. The total
channel utilization should include all time periods the AP
spent actively receiving and transmitting 802.11 frames in
this BSS.
    """
    return self.__bss_channel_utilization
      
  def _set_bss_channel_utilization(self, v, load=False):
    """
    Setter method for bss_channel_utilization, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters/bss_channel_utilization (oc-types:percentage)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_bss_channel_utilization is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_bss_channel_utilization() directly.

    YANG Description: Total 802.11 channel utilization in this BSS. The total
channel utilization should include all time periods the AP
spent actively receiving and transmitting 802.11 frames in
this BSS.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="bss-channel-utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """bss_channel_utilization must be of a type compatible with oc-types:percentage""",
          'defined-type': "oc-types:percentage",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="bss-channel-utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)""",
        })

    self.__bss_channel_utilization = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_bss_channel_utilization(self):
    self.__bss_channel_utilization = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="bss-channel-utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)

  rx_bss_dot11_channel_utilization = __builtin__.property(_get_rx_bss_dot11_channel_utilization)
  rx_mgmt = __builtin__.property(_get_rx_mgmt)
  rx_control = __builtin__.property(_get_rx_control)
  rx_data_dist = __builtin__.property(_get_rx_data_dist)
  rx_data_wmm = __builtin__.property(_get_rx_data_wmm)
  rx_mcs = __builtin__.property(_get_rx_mcs)
  rx_retries = __builtin__.property(_get_rx_retries)
  rx_total_frames = __builtin__.property(_get_rx_total_frames)
  rx_retries_data = __builtin__.property(_get_rx_retries_data)
  rx_total_data = __builtin__.property(_get_rx_total_data)
  rx_retries_subframe = __builtin__.property(_get_rx_retries_subframe)
  rx_total_subframe = __builtin__.property(_get_rx_total_subframe)
  rx_bytes_data = __builtin__.property(_get_rx_bytes_data)
  tx_bss_dot11_channel_utilization = __builtin__.property(_get_tx_bss_dot11_channel_utilization)
  tx_mgmt = __builtin__.property(_get_tx_mgmt)
  tx_control = __builtin__.property(_get_tx_control)
  tx_data_dist = __builtin__.property(_get_tx_data_dist)
  tx_data_wmm = __builtin__.property(_get_tx_data_wmm)
  tx_mcs = __builtin__.property(_get_tx_mcs)
  tx_retries = __builtin__.property(_get_tx_retries)
  tx_total_frames = __builtin__.property(_get_tx_total_frames)
  tx_retries_data = __builtin__.property(_get_tx_retries_data)
  tx_total_data = __builtin__.property(_get_tx_total_data)
  tx_retries_subframe = __builtin__.property(_get_tx_retries_subframe)
  tx_total_subframe = __builtin__.property(_get_tx_total_subframe)
  tx_bytes_data = __builtin__.property(_get_tx_bytes_data)
  bss_channel_utilization = __builtin__.property(_get_bss_channel_utilization)


  _pyangbind_elements = OrderedDict([('rx_bss_dot11_channel_utilization', rx_bss_dot11_channel_utilization), ('rx_mgmt', rx_mgmt), ('rx_control', rx_control), ('rx_data_dist', rx_data_dist), ('rx_data_wmm', rx_data_wmm), ('rx_mcs', rx_mcs), ('rx_retries', rx_retries), ('rx_total_frames', rx_total_frames), ('rx_retries_data', rx_retries_data), ('rx_total_data', rx_total_data), ('rx_retries_subframe', rx_retries_subframe), ('rx_total_subframe', rx_total_subframe), ('rx_bytes_data', rx_bytes_data), ('tx_bss_dot11_channel_utilization', tx_bss_dot11_channel_utilization), ('tx_mgmt', tx_mgmt), ('tx_control', tx_control), ('tx_data_dist', tx_data_dist), ('tx_data_wmm', tx_data_wmm), ('tx_mcs', tx_mcs), ('tx_retries', tx_retries), ('tx_total_frames', tx_total_frames), ('tx_retries_data', tx_retries_data), ('tx_total_data', tx_total_data), ('tx_retries_subframe', tx_retries_subframe), ('tx_total_subframe', tx_total_subframe), ('tx_bytes_data', tx_bytes_data), ('bss_channel_utilization', bss_channel_utilization), ])


class yc_state_openconfig_access_points__access_points_access_point_ssids_ssid_bssids_bssid_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/ssids/ssid/bssids/bssid/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: BSSID state data.
  """
  __slots__ = ('_path_helper', '_extmethods', '__bssid','__radio_id','__num_associated_clients','__counters',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__bssid = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="bssid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:mac-address', is_config=False)
    self.__radio_id = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="radio-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)
    self.__num_associated_clients = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-associated-clients", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)
    self.__counters = YANGDynClass(base=yc_counters_openconfig_access_points__access_points_access_point_ssids_ssid_bssids_bssid_state_counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', 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 ['access-points', 'access-point', 'ssids', 'ssid', 'bssids', 'bssid', 'state']

  def _get_bssid(self):
    """
    Getter method for bssid, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/bssid (oc-yang:mac-address)

    YANG Description: MAC of the BSS.
    """
    return self.__bssid
      
  def _set_bssid(self, v, load=False):
    """
    Setter method for bssid, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/bssid (oc-yang:mac-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_bssid is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_bssid() directly.

    YANG Description: MAC of the BSS.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="bssid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:mac-address', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """bssid must be of a type compatible with oc-yang:mac-address""",
          'defined-type': "oc-yang:mac-address",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="bssid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:mac-address', is_config=False)""",
        })

    self.__bssid = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_bssid(self):
    self.__bssid = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="bssid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:mac-address', is_config=False)


  def _get_radio_id(self):
    """
    Getter method for radio_id, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/radio_id (uint8)

    YANG Description: The configured id of the radio
    """
    return self.__radio_id
      
  def _set_radio_id(self, v, load=False):
    """
    Setter method for radio_id, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/radio_id (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_radio_id is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_radio_id() directly.

    YANG Description: The configured id of the radio
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="radio-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """radio_id must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="radio-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)""",
        })

    self.__radio_id = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_radio_id(self):
    self.__radio_id = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="radio-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)


  def _get_num_associated_clients(self):
    """
    Getter method for num_associated_clients, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/num_associated_clients (uint8)

    YANG Description: Number of associated STAs to this BSS.
    """
    return self.__num_associated_clients
      
  def _set_num_associated_clients(self, v, load=False):
    """
    Setter method for num_associated_clients, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/num_associated_clients (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_num_associated_clients is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_num_associated_clients() directly.

    YANG Description: Number of associated STAs to this BSS.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-associated-clients", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """num_associated_clients must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-associated-clients", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)""",
        })

    self.__num_associated_clients = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_num_associated_clients(self):
    self.__num_associated_clients = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-associated-clients", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)


  def _get_counters(self):
    """
    Getter method for counters, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters (container)

    YANG Description: BSS Counters.
    """
    return self.__counters
      
  def _set_counters(self, v, load=False):
    """
    Setter method for counters, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state/counters (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_counters is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_counters() directly.

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

    self.__counters = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_counters(self):
    self.__counters = YANGDynClass(base=yc_counters_openconfig_access_points__access_points_access_point_ssids_ssid_bssids_bssid_state_counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)

  bssid = __builtin__.property(_get_bssid)
  radio_id = __builtin__.property(_get_radio_id)
  num_associated_clients = __builtin__.property(_get_num_associated_clients)
  counters = __builtin__.property(_get_counters)


  _pyangbind_elements = OrderedDict([('bssid', bssid), ('radio_id', radio_id), ('num_associated_clients', num_associated_clients), ('counters', counters), ])


class yc_bssid_openconfig_access_points__access_points_access_point_ssids_ssid_bssids_bssid(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/ssids/ssid/bssids/bssid. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: List of BSSIDs and what radio-id they utilize. Radio-id
included here to allocate for APs with dual 5GHz radios.
Usage of paths allows for discovery and subscription of
State data per BSSID, regardless of radio.
  """
  __slots__ = ('_path_helper', '_extmethods', '__bssid','__radio_id','__state',)

  _yang_name = 'bssid'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__bssid = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="bssid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=False)
    self.__radio_id = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="radio-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=False)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_ssids_ssid_bssids_bssid_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/wifi/access-points', defining_module='openconfig-access-points', 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 ['access-points', 'access-point', 'ssids', 'ssid', 'bssids', 'bssid']

  def _get_bssid(self):
    """
    Getter method for bssid, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/bssid (leafref)

    YANG Description: The BSSID MAC address.
    """
    return self.__bssid
      
  def _set_bssid(self, v, load=False):
    """
    Setter method for bssid, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/bssid (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_bssid is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_bssid() directly.

    YANG Description: The BSSID MAC address.
    """
    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="bssid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """bssid must be of a type compatible with leafref""",
          'defined-type': "leafref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="bssid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=False)""",
        })

    self.__bssid = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_bssid(self):
    self.__bssid = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="bssid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=False)


  def _get_radio_id(self):
    """
    Getter method for radio_id, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/radio_id (leafref)

    YANG Description: References the configured id of the radio.
    """
    return self.__radio_id
      
  def _set_radio_id(self, v, load=False):
    """
    Setter method for radio_id, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/radio_id (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_radio_id is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_radio_id() directly.

    YANG Description: References the configured id of the radio.
    """
    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="radio-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """radio_id must be of a type compatible with leafref""",
          'defined-type': "leafref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="radio-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=False)""",
        })

    self.__radio_id = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_radio_id(self):
    self.__radio_id = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="radio-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=False)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/state (container)

    YANG Description: BSSID state data.
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid/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: BSSID state data.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_ssids_ssid_bssids_bssid_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/wifi/access-points', defining_module='openconfig-access-points', 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=yc_state_openconfig_access_points__access_points_access_point_ssids_ssid_bssids_bssid_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_ssids_ssid_bssids_bssid_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)

  bssid = __builtin__.property(_get_bssid)
  radio_id = __builtin__.property(_get_radio_id)
  state = __builtin__.property(_get_state)


  _pyangbind_elements = OrderedDict([('bssid', bssid), ('radio_id', radio_id), ('state', state), ])


class yc_bssids_openconfig_access_points__access_points_access_point_ssids_ssid_bssids(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/ssids/ssid/bssids. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Top-level container for BSSIDs operational state data.
  """
  __slots__ = ('_path_helper', '_extmethods', '__bssid',)

  _yang_name = 'bssids'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__bssid = YANGDynClass(base=YANGListType("radio_id bssid",yc_bssid_openconfig_access_points__access_points_access_point_ssids_ssid_bssids_bssid, yang_name="bssid", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='radio-id bssid', extensions=None), is_container='list', yang_name="bssid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)

    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 ['access-points', 'access-point', 'ssids', 'ssid', 'bssids']

  def _get_bssid(self):
    """
    Getter method for bssid, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid (list)

    YANG Description: List of BSSIDs and what radio-id they utilize. Radio-id
included here to allocate for APs with dual 5GHz radios.
Usage of paths allows for discovery and subscription of
State data per BSSID, regardless of radio.
    """
    return self.__bssid
      
  def _set_bssid(self, v, load=False):
    """
    Setter method for bssid, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids/bssid (list)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_bssid is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_bssid() directly.

    YANG Description: List of BSSIDs and what radio-id they utilize. Radio-id
included here to allocate for APs with dual 5GHz radios.
Usage of paths allows for discovery and subscription of
State data per BSSID, regardless of radio.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGListType("radio_id bssid",yc_bssid_openconfig_access_points__access_points_access_point_ssids_ssid_bssids_bssid, yang_name="bssid", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='radio-id bssid', extensions=None), is_container='list', yang_name="bssid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """bssid must be of a type compatible with list""",
          'defined-type': "list",
          'generated-type': """YANGDynClass(base=YANGListType("radio_id bssid",yc_bssid_openconfig_access_points__access_points_access_point_ssids_ssid_bssids_bssid, yang_name="bssid", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='radio-id bssid', extensions=None), is_container='list', yang_name="bssid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)""",
        })

    self.__bssid = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_bssid(self):
    self.__bssid = YANGDynClass(base=YANGListType("radio_id bssid",yc_bssid_openconfig_access_points__access_points_access_point_ssids_ssid_bssids_bssid, yang_name="bssid", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='radio-id bssid', extensions=None), is_container='list', yang_name="bssid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)

  bssid = __builtin__.property(_get_bssid, _set_bssid)


  _pyangbind_elements = OrderedDict([('bssid', bssid), ])


class yc_config_openconfig_access_points__access_points_access_point_ssids_ssid_wmm_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/ssids/ssid/wmm/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Container for WMM configuration elements.
  """
  __slots__ = ('_path_helper', '_extmethods', '__trust_dscp','__wmm_vo_remark','__wmm_vi_remark','__wmm_be_remark','__wmm_bk_remark',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__trust_dscp = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="trust-dscp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)
    self.__wmm_vo_remark = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="wmm-vo-remark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=True)
    self.__wmm_vi_remark = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="wmm-vi-remark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=True)
    self.__wmm_be_remark = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="wmm-be-remark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=True)
    self.__wmm_bk_remark = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="wmm-bk-remark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=True)

    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 ['access-points', 'access-point', 'ssids', 'ssid', 'wmm', 'config']

  def _get_trust_dscp(self):
    """
    Getter method for trust_dscp, mapped from YANG variable /access_points/access_point/ssids/ssid/wmm/config/trust_dscp (boolean)

    YANG Description: The AP should trust DSCP on 802.11 frames received
in this BSS.
    """
    return self.__trust_dscp
      
  def _set_trust_dscp(self, v, load=False):
    """
    Setter method for trust_dscp, mapped from YANG variable /access_points/access_point/ssids/ssid/wmm/config/trust_dscp (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_trust_dscp is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_trust_dscp() directly.

    YANG Description: The AP should trust DSCP on 802.11 frames received
in this BSS.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="trust-dscp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """trust_dscp must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="trust-dscp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)""",
        })

    self.__trust_dscp = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_trust_dscp(self):
    self.__trust_dscp = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="trust-dscp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)


  def _get_wmm_vo_remark(self):
    """
    Getter method for wmm_vo_remark, mapped from YANG variable /access_points/access_point/ssids/ssid/wmm/config/wmm_vo_remark (uint8)

    YANG Description: Allowed DSCP markings for WMM AC_VO. Remark to lowest in this
list if DSCP marking falls outside of these allowed markings.

From 1 (min) to 8 (max) integers.
    """
    return self.__wmm_vo_remark
      
  def _set_wmm_vo_remark(self, v, load=False):
    """
    Setter method for wmm_vo_remark, mapped from YANG variable /access_points/access_point/ssids/ssid/wmm/config/wmm_vo_remark (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_wmm_vo_remark is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_wmm_vo_remark() directly.

    YANG Description: Allowed DSCP markings for WMM AC_VO. Remark to lowest in this
list if DSCP marking falls outside of these allowed markings.

From 1 (min) to 8 (max) integers.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="wmm-vo-remark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """wmm_vo_remark must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="wmm-vo-remark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=True)""",
        })

    self.__wmm_vo_remark = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_wmm_vo_remark(self):
    self.__wmm_vo_remark = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="wmm-vo-remark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=True)


  def _get_wmm_vi_remark(self):
    """
    Getter method for wmm_vi_remark, mapped from YANG variable /access_points/access_point/ssids/ssid/wmm/config/wmm_vi_remark (uint8)

    YANG Description: Allowed DSCP markings for WMM AC_VI. Remark to lowest in this
list if DSCP marking falls outside of these allowed markings.

From 1 (min) to 8 (max) integers.
    """
    return self.__wmm_vi_remark
      
  def _set_wmm_vi_remark(self, v, load=False):
    """
    Setter method for wmm_vi_remark, mapped from YANG variable /access_points/access_point/ssids/ssid/wmm/config/wmm_vi_remark (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_wmm_vi_remark is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_wmm_vi_remark() directly.

    YANG Description: Allowed DSCP markings for WMM AC_VI. Remark to lowest in this
list if DSCP marking falls outside of these allowed markings.

From 1 (min) to 8 (max) integers.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="wmm-vi-remark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """wmm_vi_remark must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="wmm-vi-remark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=True)""",
        })

    self.__wmm_vi_remark = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_wmm_vi_remark(self):
    self.__wmm_vi_remark = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="wmm-vi-remark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=True)


  def _get_wmm_be_remark(self):
    """
    Getter method for wmm_be_remark, mapped from YANG variable /access_points/access_point/ssids/ssid/wmm/config/wmm_be_remark (uint8)

    YANG Description: Allowed DSCP markings for WMM AC_BE. Remark to lowest in this
list if DSCP marking falls outside of these allowed markings.

From 1 (min) to 8 (max) integers.
    """
    return self.__wmm_be_remark
      
  def _set_wmm_be_remark(self, v, load=False):
    """
    Setter method for wmm_be_remark, mapped from YANG variable /access_points/access_point/ssids/ssid/wmm/config/wmm_be_remark (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_wmm_be_remark is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_wmm_be_remark() directly.

    YANG Description: Allowed DSCP markings for WMM AC_BE. Remark to lowest in this
list if DSCP marking falls outside of these allowed markings.

From 1 (min) to 8 (max) integers.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="wmm-be-remark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """wmm_be_remark must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="wmm-be-remark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=True)""",
        })

    self.__wmm_be_remark = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_wmm_be_remark(self):
    self.__wmm_be_remark = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="wmm-be-remark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=True)


  def _get_wmm_bk_remark(self):
    """
    Getter method for wmm_bk_remark, mapped from YANG variable /access_points/access_point/ssids/ssid/wmm/config/wmm_bk_remark (uint8)

    YANG Description: Allowed DSCP markings for WMM AC_BK. Remark to lowest in this
list if DSCP marking falls outside of these allowed markings.

From 1 (min) to 8 (max) integers.
    """
    return self.__wmm_bk_remark
      
  def _set_wmm_bk_remark(self, v, load=False):
    """
    Setter method for wmm_bk_remark, mapped from YANG variable /access_points/access_point/ssids/ssid/wmm/config/wmm_bk_remark (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_wmm_bk_remark is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_wmm_bk_remark() directly.

    YANG Description: Allowed DSCP markings for WMM AC_BK. Remark to lowest in this
list if DSCP marking falls outside of these allowed markings.

From 1 (min) to 8 (max) integers.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="wmm-bk-remark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """wmm_bk_remark must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="wmm-bk-remark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=True)""",
        })

    self.__wmm_bk_remark = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_wmm_bk_remark(self):
    self.__wmm_bk_remark = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="wmm-bk-remark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=True)

  trust_dscp = __builtin__.property(_get_trust_dscp, _set_trust_dscp)
  wmm_vo_remark = __builtin__.property(_get_wmm_vo_remark, _set_wmm_vo_remark)
  wmm_vi_remark = __builtin__.property(_get_wmm_vi_remark, _set_wmm_vi_remark)
  wmm_be_remark = __builtin__.property(_get_wmm_be_remark, _set_wmm_be_remark)
  wmm_bk_remark = __builtin__.property(_get_wmm_bk_remark, _set_wmm_bk_remark)


  _pyangbind_elements = OrderedDict([('trust_dscp', trust_dscp), ('wmm_vo_remark', wmm_vo_remark), ('wmm_vi_remark', wmm_vi_remark), ('wmm_be_remark', wmm_be_remark), ('wmm_bk_remark', wmm_bk_remark), ])


class yc_state_openconfig_access_points__access_points_access_point_ssids_ssid_wmm_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/ssids/ssid/wmm/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Container for WMM state elements.
  """
  __slots__ = ('_path_helper', '_extmethods', '__trust_dscp','__wmm_vo_remark','__wmm_vi_remark','__wmm_be_remark','__wmm_bk_remark',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__trust_dscp = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="trust-dscp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    self.__wmm_vo_remark = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="wmm-vo-remark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)
    self.__wmm_vi_remark = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="wmm-vi-remark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)
    self.__wmm_be_remark = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="wmm-be-remark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)
    self.__wmm_bk_remark = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="wmm-bk-remark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', 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 ['access-points', 'access-point', 'ssids', 'ssid', 'wmm', 'state']

  def _get_trust_dscp(self):
    """
    Getter method for trust_dscp, mapped from YANG variable /access_points/access_point/ssids/ssid/wmm/state/trust_dscp (boolean)

    YANG Description: The AP should trust DSCP on 802.11 frames received
in this BSS.
    """
    return self.__trust_dscp
      
  def _set_trust_dscp(self, v, load=False):
    """
    Setter method for trust_dscp, mapped from YANG variable /access_points/access_point/ssids/ssid/wmm/state/trust_dscp (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_trust_dscp is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_trust_dscp() directly.

    YANG Description: The AP should trust DSCP on 802.11 frames received
in this BSS.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="trust-dscp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """trust_dscp must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="trust-dscp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)""",
        })

    self.__trust_dscp = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_trust_dscp(self):
    self.__trust_dscp = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="trust-dscp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)


  def _get_wmm_vo_remark(self):
    """
    Getter method for wmm_vo_remark, mapped from YANG variable /access_points/access_point/ssids/ssid/wmm/state/wmm_vo_remark (uint8)

    YANG Description: Allowed DSCP markings for WMM AC_VO. Remark to lowest in this
list if DSCP marking falls outside of these allowed markings.

From 1 (min) to 8 (max) integers.
    """
    return self.__wmm_vo_remark
      
  def _set_wmm_vo_remark(self, v, load=False):
    """
    Setter method for wmm_vo_remark, mapped from YANG variable /access_points/access_point/ssids/ssid/wmm/state/wmm_vo_remark (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_wmm_vo_remark is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_wmm_vo_remark() directly.

    YANG Description: Allowed DSCP markings for WMM AC_VO. Remark to lowest in this
list if DSCP marking falls outside of these allowed markings.

From 1 (min) to 8 (max) integers.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="wmm-vo-remark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """wmm_vo_remark must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="wmm-vo-remark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)""",
        })

    self.__wmm_vo_remark = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_wmm_vo_remark(self):
    self.__wmm_vo_remark = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="wmm-vo-remark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)


  def _get_wmm_vi_remark(self):
    """
    Getter method for wmm_vi_remark, mapped from YANG variable /access_points/access_point/ssids/ssid/wmm/state/wmm_vi_remark (uint8)

    YANG Description: Allowed DSCP markings for WMM AC_VI. Remark to lowest in this
list if DSCP marking falls outside of these allowed markings.

From 1 (min) to 8 (max) integers.
    """
    return self.__wmm_vi_remark
      
  def _set_wmm_vi_remark(self, v, load=False):
    """
    Setter method for wmm_vi_remark, mapped from YANG variable /access_points/access_point/ssids/ssid/wmm/state/wmm_vi_remark (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_wmm_vi_remark is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_wmm_vi_remark() directly.

    YANG Description: Allowed DSCP markings for WMM AC_VI. Remark to lowest in this
list if DSCP marking falls outside of these allowed markings.

From 1 (min) to 8 (max) integers.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="wmm-vi-remark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """wmm_vi_remark must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="wmm-vi-remark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)""",
        })

    self.__wmm_vi_remark = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_wmm_vi_remark(self):
    self.__wmm_vi_remark = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="wmm-vi-remark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)


  def _get_wmm_be_remark(self):
    """
    Getter method for wmm_be_remark, mapped from YANG variable /access_points/access_point/ssids/ssid/wmm/state/wmm_be_remark (uint8)

    YANG Description: Allowed DSCP markings for WMM AC_BE. Remark to lowest in this
list if DSCP marking falls outside of these allowed markings.

From 1 (min) to 8 (max) integers.
    """
    return self.__wmm_be_remark
      
  def _set_wmm_be_remark(self, v, load=False):
    """
    Setter method for wmm_be_remark, mapped from YANG variable /access_points/access_point/ssids/ssid/wmm/state/wmm_be_remark (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_wmm_be_remark is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_wmm_be_remark() directly.

    YANG Description: Allowed DSCP markings for WMM AC_BE. Remark to lowest in this
list if DSCP marking falls outside of these allowed markings.

From 1 (min) to 8 (max) integers.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="wmm-be-remark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """wmm_be_remark must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="wmm-be-remark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)""",
        })

    self.__wmm_be_remark = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_wmm_be_remark(self):
    self.__wmm_be_remark = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="wmm-be-remark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)


  def _get_wmm_bk_remark(self):
    """
    Getter method for wmm_bk_remark, mapped from YANG variable /access_points/access_point/ssids/ssid/wmm/state/wmm_bk_remark (uint8)

    YANG Description: Allowed DSCP markings for WMM AC_BK. Remark to lowest in this
list if DSCP marking falls outside of these allowed markings.

From 1 (min) to 8 (max) integers.
    """
    return self.__wmm_bk_remark
      
  def _set_wmm_bk_remark(self, v, load=False):
    """
    Setter method for wmm_bk_remark, mapped from YANG variable /access_points/access_point/ssids/ssid/wmm/state/wmm_bk_remark (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_wmm_bk_remark is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_wmm_bk_remark() directly.

    YANG Description: Allowed DSCP markings for WMM AC_BK. Remark to lowest in this
list if DSCP marking falls outside of these allowed markings.

From 1 (min) to 8 (max) integers.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="wmm-bk-remark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """wmm_bk_remark must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="wmm-bk-remark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)""",
        })

    self.__wmm_bk_remark = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_wmm_bk_remark(self):
    self.__wmm_bk_remark = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="wmm-bk-remark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)

  trust_dscp = __builtin__.property(_get_trust_dscp)
  wmm_vo_remark = __builtin__.property(_get_wmm_vo_remark)
  wmm_vi_remark = __builtin__.property(_get_wmm_vi_remark)
  wmm_be_remark = __builtin__.property(_get_wmm_be_remark)
  wmm_bk_remark = __builtin__.property(_get_wmm_bk_remark)


  _pyangbind_elements = OrderedDict([('trust_dscp', trust_dscp), ('wmm_vo_remark', wmm_vo_remark), ('wmm_vi_remark', wmm_vi_remark), ('wmm_be_remark', wmm_be_remark), ('wmm_bk_remark', wmm_bk_remark), ])


class yc_wmm_openconfig_access_points__access_points_access_point_ssids_ssid_wmm(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/ssids/ssid/wmm. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Top-level container for WMM configuration and
state container.
  """
  __slots__ = ('_path_helper', '_extmethods', '__config','__state',)

  _yang_name = 'wmm'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_ssids_ssid_wmm_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_ssids_ssid_wmm_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'ssids', 'ssid', 'wmm']

  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/ssids/ssid/wmm/config (container)

    YANG Description: Container for WMM configuration elements.
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/ssids/ssid/wmm/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Container for WMM configuration elements.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_access_points__access_points_access_point_ssids_ssid_wmm_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_ssids_ssid_wmm_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_ssids_ssid_wmm_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/ssids/ssid/wmm/state (container)

    YANG Description: Container for WMM state elements.
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/ssids/ssid/wmm/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: Container for WMM state elements.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_ssids_ssid_wmm_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_ssids_ssid_wmm_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_ssids_ssid_wmm_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)


  _pyangbind_elements = OrderedDict([('config', config), ('state', state), ])


class yc_config_openconfig_access_points__access_points_access_point_ssids_ssid_dot11r_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/ssids/ssid/dot11r/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Container for 802.11r configuration elements.
  """
  __slots__ = ('_path_helper', '_extmethods', '__dot11r','__dot11r_domainid','__dot11r_method','__dot11r_r1key_timeout',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__dot11r = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dot11r", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)
    self.__dot11r_domainid = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="dot11r-domainid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=True)
    self.__dot11r_method = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OVA': {}, 'ODS': {}},), default=six.text_type("OVA"), is_leaf=True, yang_name="dot11r-method", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='enumeration', is_config=True)
    self.__dot11r_r1key_timeout = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="dot11r-r1key-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=True)

    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 ['access-points', 'access-point', 'ssids', 'ssid', 'dot11r', 'config']

  def _get_dot11r(self):
    """
    Getter method for dot11r, mapped from YANG variable /access_points/access_point/ssids/ssid/dot11r/config/dot11r (boolean)

    YANG Description: Enable/disable 802.11r FT.
    """
    return self.__dot11r
      
  def _set_dot11r(self, v, load=False):
    """
    Setter method for dot11r, mapped from YANG variable /access_points/access_point/ssids/ssid/dot11r/config/dot11r (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dot11r is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dot11r() directly.

    YANG Description: Enable/disable 802.11r FT.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="dot11r", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dot11r must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dot11r", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)""",
        })

    self.__dot11r = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dot11r(self):
    self.__dot11r = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dot11r", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)


  def _get_dot11r_domainid(self):
    """
    Getter method for dot11r_domainid, mapped from YANG variable /access_points/access_point/ssids/ssid/dot11r/config/dot11r_domainid (uint16)

    YANG Description: Specify the mobility domain id (MDID) where PMK-R0
distribution will occur. Specifically, which APs will receive
PMK-R0 if using 802.11r (FT).
    """
    return self.__dot11r_domainid
      
  def _set_dot11r_domainid(self, v, load=False):
    """
    Setter method for dot11r_domainid, mapped from YANG variable /access_points/access_point/ssids/ssid/dot11r/config/dot11r_domainid (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dot11r_domainid is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dot11r_domainid() directly.

    YANG Description: Specify the mobility domain id (MDID) where PMK-R0
distribution will occur. Specifically, which APs will receive
PMK-R0 if using 802.11r (FT).
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="dot11r-domainid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dot11r_domainid must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="dot11r-domainid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=True)""",
        })

    self.__dot11r_domainid = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dot11r_domainid(self):
    self.__dot11r_domainid = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="dot11r-domainid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=True)


  def _get_dot11r_method(self):
    """
    Getter method for dot11r_method, mapped from YANG variable /access_points/access_point/ssids/ssid/dot11r/config/dot11r_method (enumeration)

    YANG Description: The type of 802.11r FT in use.
    """
    return self.__dot11r_method
      
  def _set_dot11r_method(self, v, load=False):
    """
    Setter method for dot11r_method, mapped from YANG variable /access_points/access_point/ssids/ssid/dot11r/config/dot11r_method (enumeration)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dot11r_method is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dot11r_method() directly.

    YANG Description: The type of 802.11r FT in use.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OVA': {}, 'ODS': {}},), default=six.text_type("OVA"), is_leaf=True, yang_name="dot11r-method", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='enumeration', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dot11r_method must be of a type compatible with enumeration""",
          'defined-type': "openconfig-access-points:enumeration",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OVA': {}, 'ODS': {}},), default=six.text_type("OVA"), is_leaf=True, yang_name="dot11r-method", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='enumeration', is_config=True)""",
        })

    self.__dot11r_method = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dot11r_method(self):
    self.__dot11r_method = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OVA': {}, 'ODS': {}},), default=six.text_type("OVA"), is_leaf=True, yang_name="dot11r-method", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='enumeration', is_config=True)


  def _get_dot11r_r1key_timeout(self):
    """
    Getter method for dot11r_r1key_timeout, mapped from YANG variable /access_points/access_point/ssids/ssid/dot11r/config/dot11r_r1key_timeout (uint16)

    YANG Description: TTL for the Pairwise Master Key R1.
    """
    return self.__dot11r_r1key_timeout
      
  def _set_dot11r_r1key_timeout(self, v, load=False):
    """
    Setter method for dot11r_r1key_timeout, mapped from YANG variable /access_points/access_point/ssids/ssid/dot11r/config/dot11r_r1key_timeout (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dot11r_r1key_timeout is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dot11r_r1key_timeout() directly.

    YANG Description: TTL for the Pairwise Master Key R1.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="dot11r-r1key-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dot11r_r1key_timeout must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="dot11r-r1key-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=True)""",
        })

    self.__dot11r_r1key_timeout = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dot11r_r1key_timeout(self):
    self.__dot11r_r1key_timeout = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="dot11r-r1key-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=True)

  dot11r = __builtin__.property(_get_dot11r, _set_dot11r)
  dot11r_domainid = __builtin__.property(_get_dot11r_domainid, _set_dot11r_domainid)
  dot11r_method = __builtin__.property(_get_dot11r_method, _set_dot11r_method)
  dot11r_r1key_timeout = __builtin__.property(_get_dot11r_r1key_timeout, _set_dot11r_r1key_timeout)


  _pyangbind_elements = OrderedDict([('dot11r', dot11r), ('dot11r_domainid', dot11r_domainid), ('dot11r_method', dot11r_method), ('dot11r_r1key_timeout', dot11r_r1key_timeout), ])


class yc_state_openconfig_access_points__access_points_access_point_ssids_ssid_dot11r_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/ssids/ssid/dot11r/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Container for 802.11r state elements.
  """
  __slots__ = ('_path_helper', '_extmethods', '__dot11r','__dot11r_domainid','__dot11r_method','__dot11r_r1key_timeout',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__dot11r = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dot11r", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    self.__dot11r_domainid = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="dot11r-domainid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)
    self.__dot11r_method = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OVA': {}, 'ODS': {}},), default=six.text_type("OVA"), is_leaf=True, yang_name="dot11r-method", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='enumeration', is_config=False)
    self.__dot11r_r1key_timeout = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="dot11r-r1key-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', 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 ['access-points', 'access-point', 'ssids', 'ssid', 'dot11r', 'state']

  def _get_dot11r(self):
    """
    Getter method for dot11r, mapped from YANG variable /access_points/access_point/ssids/ssid/dot11r/state/dot11r (boolean)

    YANG Description: Enable/disable 802.11r FT.
    """
    return self.__dot11r
      
  def _set_dot11r(self, v, load=False):
    """
    Setter method for dot11r, mapped from YANG variable /access_points/access_point/ssids/ssid/dot11r/state/dot11r (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dot11r is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dot11r() directly.

    YANG Description: Enable/disable 802.11r FT.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="dot11r", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dot11r must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dot11r", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)""",
        })

    self.__dot11r = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dot11r(self):
    self.__dot11r = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dot11r", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)


  def _get_dot11r_domainid(self):
    """
    Getter method for dot11r_domainid, mapped from YANG variable /access_points/access_point/ssids/ssid/dot11r/state/dot11r_domainid (uint16)

    YANG Description: Specify the mobility domain id (MDID) where PMK-R0
distribution will occur. Specifically, which APs will receive
PMK-R0 if using 802.11r (FT).
    """
    return self.__dot11r_domainid
      
  def _set_dot11r_domainid(self, v, load=False):
    """
    Setter method for dot11r_domainid, mapped from YANG variable /access_points/access_point/ssids/ssid/dot11r/state/dot11r_domainid (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dot11r_domainid is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dot11r_domainid() directly.

    YANG Description: Specify the mobility domain id (MDID) where PMK-R0
distribution will occur. Specifically, which APs will receive
PMK-R0 if using 802.11r (FT).
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="dot11r-domainid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dot11r_domainid must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="dot11r-domainid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)""",
        })

    self.__dot11r_domainid = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dot11r_domainid(self):
    self.__dot11r_domainid = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="dot11r-domainid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)


  def _get_dot11r_method(self):
    """
    Getter method for dot11r_method, mapped from YANG variable /access_points/access_point/ssids/ssid/dot11r/state/dot11r_method (enumeration)

    YANG Description: The type of 802.11r FT in use.
    """
    return self.__dot11r_method
      
  def _set_dot11r_method(self, v, load=False):
    """
    Setter method for dot11r_method, mapped from YANG variable /access_points/access_point/ssids/ssid/dot11r/state/dot11r_method (enumeration)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dot11r_method is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dot11r_method() directly.

    YANG Description: The type of 802.11r FT in use.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OVA': {}, 'ODS': {}},), default=six.text_type("OVA"), is_leaf=True, yang_name="dot11r-method", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='enumeration', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dot11r_method must be of a type compatible with enumeration""",
          'defined-type': "openconfig-access-points:enumeration",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OVA': {}, 'ODS': {}},), default=six.text_type("OVA"), is_leaf=True, yang_name="dot11r-method", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='enumeration', is_config=False)""",
        })

    self.__dot11r_method = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dot11r_method(self):
    self.__dot11r_method = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OVA': {}, 'ODS': {}},), default=six.text_type("OVA"), is_leaf=True, yang_name="dot11r-method", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='enumeration', is_config=False)


  def _get_dot11r_r1key_timeout(self):
    """
    Getter method for dot11r_r1key_timeout, mapped from YANG variable /access_points/access_point/ssids/ssid/dot11r/state/dot11r_r1key_timeout (uint16)

    YANG Description: TTL for the Pairwise Master Key R1.
    """
    return self.__dot11r_r1key_timeout
      
  def _set_dot11r_r1key_timeout(self, v, load=False):
    """
    Setter method for dot11r_r1key_timeout, mapped from YANG variable /access_points/access_point/ssids/ssid/dot11r/state/dot11r_r1key_timeout (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dot11r_r1key_timeout is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dot11r_r1key_timeout() directly.

    YANG Description: TTL for the Pairwise Master Key R1.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="dot11r-r1key-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dot11r_r1key_timeout must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="dot11r-r1key-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)""",
        })

    self.__dot11r_r1key_timeout = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dot11r_r1key_timeout(self):
    self.__dot11r_r1key_timeout = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="dot11r-r1key-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)

  dot11r = __builtin__.property(_get_dot11r)
  dot11r_domainid = __builtin__.property(_get_dot11r_domainid)
  dot11r_method = __builtin__.property(_get_dot11r_method)
  dot11r_r1key_timeout = __builtin__.property(_get_dot11r_r1key_timeout)


  _pyangbind_elements = OrderedDict([('dot11r', dot11r), ('dot11r_domainid', dot11r_domainid), ('dot11r_method', dot11r_method), ('dot11r_r1key_timeout', dot11r_r1key_timeout), ])


class yc_dot11r_openconfig_access_points__access_points_access_point_ssids_ssid_dot11r(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/ssids/ssid/dot11r. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Top-level container for 802.11r configuration and
state container.
  """
  __slots__ = ('_path_helper', '_extmethods', '__config','__state',)

  _yang_name = 'dot11r'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_ssids_ssid_dot11r_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_ssids_ssid_dot11r_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'ssids', 'ssid', 'dot11r']

  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/ssids/ssid/dot11r/config (container)

    YANG Description: Container for 802.11r configuration elements.
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/ssids/ssid/dot11r/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Container for 802.11r configuration elements.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_access_points__access_points_access_point_ssids_ssid_dot11r_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_ssids_ssid_dot11r_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_ssids_ssid_dot11r_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/ssids/ssid/dot11r/state (container)

    YANG Description: Container for 802.11r state elements.
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/ssids/ssid/dot11r/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: Container for 802.11r state elements.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_ssids_ssid_dot11r_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_ssids_ssid_dot11r_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_ssids_ssid_dot11r_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)


  _pyangbind_elements = OrderedDict([('config', config), ('state', state), ])


class yc_config_openconfig_access_points__access_points_access_point_ssids_ssid_dot11v_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/ssids/ssid/dot11v/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Container for 802.11v configuration elements.
  """
  __slots__ = ('_path_helper', '_extmethods', '__dot11v_dms','__dot11v_bssidle','__dot11v_bssidle_timeout','__dot11v_bsstransition',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__dot11v_dms = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dot11v-dms", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)
    self.__dot11v_bssidle = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dot11v-bssidle", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)
    self.__dot11v_bssidle_timeout = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="dot11v-bssidle-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=True)
    self.__dot11v_bsstransition = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dot11v-bsstransition", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)

    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 ['access-points', 'access-point', 'ssids', 'ssid', 'dot11v', 'config']

  def _get_dot11v_dms(self):
    """
    Getter method for dot11v_dms, mapped from YANG variable /access_points/access_point/ssids/ssid/dot11v/config/dot11v_dms (boolean)

    YANG Description: 802.11v Directed Multicast Service enabled/disabled.
    """
    return self.__dot11v_dms
      
  def _set_dot11v_dms(self, v, load=False):
    """
    Setter method for dot11v_dms, mapped from YANG variable /access_points/access_point/ssids/ssid/dot11v/config/dot11v_dms (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dot11v_dms is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dot11v_dms() directly.

    YANG Description: 802.11v Directed Multicast Service enabled/disabled.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="dot11v-dms", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dot11v_dms must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dot11v-dms", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)""",
        })

    self.__dot11v_dms = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dot11v_dms(self):
    self.__dot11v_dms = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dot11v-dms", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)


  def _get_dot11v_bssidle(self):
    """
    Getter method for dot11v_bssidle, mapped from YANG variable /access_points/access_point/ssids/ssid/dot11v/config/dot11v_bssidle (boolean)

    YANG Description: 802.11v BSS Max Idle enabled/disabled.
    """
    return self.__dot11v_bssidle
      
  def _set_dot11v_bssidle(self, v, load=False):
    """
    Setter method for dot11v_bssidle, mapped from YANG variable /access_points/access_point/ssids/ssid/dot11v/config/dot11v_bssidle (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dot11v_bssidle is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dot11v_bssidle() directly.

    YANG Description: 802.11v BSS Max Idle enabled/disabled.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="dot11v-bssidle", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dot11v_bssidle must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dot11v-bssidle", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)""",
        })

    self.__dot11v_bssidle = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dot11v_bssidle(self):
    self.__dot11v_bssidle = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dot11v-bssidle", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)


  def _get_dot11v_bssidle_timeout(self):
    """
    Getter method for dot11v_bssidle_timeout, mapped from YANG variable /access_points/access_point/ssids/ssid/dot11v/config/dot11v_bssidle_timeout (uint16)

    YANG Description: 802.11v BSS Max Idle timeout.
    """
    return self.__dot11v_bssidle_timeout
      
  def _set_dot11v_bssidle_timeout(self, v, load=False):
    """
    Setter method for dot11v_bssidle_timeout, mapped from YANG variable /access_points/access_point/ssids/ssid/dot11v/config/dot11v_bssidle_timeout (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dot11v_bssidle_timeout is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dot11v_bssidle_timeout() directly.

    YANG Description: 802.11v BSS Max Idle timeout.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="dot11v-bssidle-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dot11v_bssidle_timeout must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="dot11v-bssidle-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=True)""",
        })

    self.__dot11v_bssidle_timeout = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dot11v_bssidle_timeout(self):
    self.__dot11v_bssidle_timeout = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="dot11v-bssidle-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=True)


  def _get_dot11v_bsstransition(self):
    """
    Getter method for dot11v_bsstransition, mapped from YANG variable /access_points/access_point/ssids/ssid/dot11v/config/dot11v_bsstransition (boolean)

    YANG Description: 802.11v BSS Transition enabled/disabled.
    """
    return self.__dot11v_bsstransition
      
  def _set_dot11v_bsstransition(self, v, load=False):
    """
    Setter method for dot11v_bsstransition, mapped from YANG variable /access_points/access_point/ssids/ssid/dot11v/config/dot11v_bsstransition (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dot11v_bsstransition is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dot11v_bsstransition() directly.

    YANG Description: 802.11v BSS Transition enabled/disabled.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="dot11v-bsstransition", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dot11v_bsstransition must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dot11v-bsstransition", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)""",
        })

    self.__dot11v_bsstransition = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dot11v_bsstransition(self):
    self.__dot11v_bsstransition = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dot11v-bsstransition", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)

  dot11v_dms = __builtin__.property(_get_dot11v_dms, _set_dot11v_dms)
  dot11v_bssidle = __builtin__.property(_get_dot11v_bssidle, _set_dot11v_bssidle)
  dot11v_bssidle_timeout = __builtin__.property(_get_dot11v_bssidle_timeout, _set_dot11v_bssidle_timeout)
  dot11v_bsstransition = __builtin__.property(_get_dot11v_bsstransition, _set_dot11v_bsstransition)


  _pyangbind_elements = OrderedDict([('dot11v_dms', dot11v_dms), ('dot11v_bssidle', dot11v_bssidle), ('dot11v_bssidle_timeout', dot11v_bssidle_timeout), ('dot11v_bsstransition', dot11v_bsstransition), ])


class yc_state_openconfig_access_points__access_points_access_point_ssids_ssid_dot11v_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/ssids/ssid/dot11v/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Container for 802.11r state elements.
  """
  __slots__ = ('_path_helper', '_extmethods', '__dot11v_dms','__dot11v_bssidle','__dot11v_bssidle_timeout','__dot11v_bsstransition',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__dot11v_dms = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dot11v-dms", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    self.__dot11v_bssidle = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dot11v-bssidle", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    self.__dot11v_bssidle_timeout = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="dot11v-bssidle-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)
    self.__dot11v_bsstransition = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dot11v-bsstransition", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', 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 ['access-points', 'access-point', 'ssids', 'ssid', 'dot11v', 'state']

  def _get_dot11v_dms(self):
    """
    Getter method for dot11v_dms, mapped from YANG variable /access_points/access_point/ssids/ssid/dot11v/state/dot11v_dms (boolean)

    YANG Description: 802.11v Directed Multicast Service enabled/disabled.
    """
    return self.__dot11v_dms
      
  def _set_dot11v_dms(self, v, load=False):
    """
    Setter method for dot11v_dms, mapped from YANG variable /access_points/access_point/ssids/ssid/dot11v/state/dot11v_dms (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dot11v_dms is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dot11v_dms() directly.

    YANG Description: 802.11v Directed Multicast Service enabled/disabled.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="dot11v-dms", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dot11v_dms must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dot11v-dms", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)""",
        })

    self.__dot11v_dms = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dot11v_dms(self):
    self.__dot11v_dms = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dot11v-dms", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)


  def _get_dot11v_bssidle(self):
    """
    Getter method for dot11v_bssidle, mapped from YANG variable /access_points/access_point/ssids/ssid/dot11v/state/dot11v_bssidle (boolean)

    YANG Description: 802.11v BSS Max Idle enabled/disabled.
    """
    return self.__dot11v_bssidle
      
  def _set_dot11v_bssidle(self, v, load=False):
    """
    Setter method for dot11v_bssidle, mapped from YANG variable /access_points/access_point/ssids/ssid/dot11v/state/dot11v_bssidle (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dot11v_bssidle is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dot11v_bssidle() directly.

    YANG Description: 802.11v BSS Max Idle enabled/disabled.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="dot11v-bssidle", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dot11v_bssidle must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dot11v-bssidle", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)""",
        })

    self.__dot11v_bssidle = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dot11v_bssidle(self):
    self.__dot11v_bssidle = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dot11v-bssidle", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)


  def _get_dot11v_bssidle_timeout(self):
    """
    Getter method for dot11v_bssidle_timeout, mapped from YANG variable /access_points/access_point/ssids/ssid/dot11v/state/dot11v_bssidle_timeout (uint16)

    YANG Description: 802.11v BSS Max Idle timeout.
    """
    return self.__dot11v_bssidle_timeout
      
  def _set_dot11v_bssidle_timeout(self, v, load=False):
    """
    Setter method for dot11v_bssidle_timeout, mapped from YANG variable /access_points/access_point/ssids/ssid/dot11v/state/dot11v_bssidle_timeout (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dot11v_bssidle_timeout is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dot11v_bssidle_timeout() directly.

    YANG Description: 802.11v BSS Max Idle timeout.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="dot11v-bssidle-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dot11v_bssidle_timeout must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="dot11v-bssidle-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)""",
        })

    self.__dot11v_bssidle_timeout = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dot11v_bssidle_timeout(self):
    self.__dot11v_bssidle_timeout = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="dot11v-bssidle-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)


  def _get_dot11v_bsstransition(self):
    """
    Getter method for dot11v_bsstransition, mapped from YANG variable /access_points/access_point/ssids/ssid/dot11v/state/dot11v_bsstransition (boolean)

    YANG Description: 802.11v BSS Transition enabled/disabled.
    """
    return self.__dot11v_bsstransition
      
  def _set_dot11v_bsstransition(self, v, load=False):
    """
    Setter method for dot11v_bsstransition, mapped from YANG variable /access_points/access_point/ssids/ssid/dot11v/state/dot11v_bsstransition (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dot11v_bsstransition is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dot11v_bsstransition() directly.

    YANG Description: 802.11v BSS Transition enabled/disabled.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="dot11v-bsstransition", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dot11v_bsstransition must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dot11v-bsstransition", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)""",
        })

    self.__dot11v_bsstransition = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dot11v_bsstransition(self):
    self.__dot11v_bsstransition = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dot11v-bsstransition", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)

  dot11v_dms = __builtin__.property(_get_dot11v_dms)
  dot11v_bssidle = __builtin__.property(_get_dot11v_bssidle)
  dot11v_bssidle_timeout = __builtin__.property(_get_dot11v_bssidle_timeout)
  dot11v_bsstransition = __builtin__.property(_get_dot11v_bsstransition)


  _pyangbind_elements = OrderedDict([('dot11v_dms', dot11v_dms), ('dot11v_bssidle', dot11v_bssidle), ('dot11v_bssidle_timeout', dot11v_bssidle_timeout), ('dot11v_bsstransition', dot11v_bsstransition), ])


class yc_dot11v_openconfig_access_points__access_points_access_point_ssids_ssid_dot11v(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/ssids/ssid/dot11v. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Top-level container for 802.11v configuration and
operational state data.
  """
  __slots__ = ('_path_helper', '_extmethods', '__config','__state',)

  _yang_name = 'dot11v'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_ssids_ssid_dot11v_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_ssids_ssid_dot11v_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'ssids', 'ssid', 'dot11v']

  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/ssids/ssid/dot11v/config (container)

    YANG Description: Container for 802.11v configuration elements.
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/ssids/ssid/dot11v/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Container for 802.11v configuration elements.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_access_points__access_points_access_point_ssids_ssid_dot11v_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_ssids_ssid_dot11v_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_ssids_ssid_dot11v_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/ssids/ssid/dot11v/state (container)

    YANG Description: Container for 802.11r state elements.
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/ssids/ssid/dot11v/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: Container for 802.11r state elements.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_ssids_ssid_dot11v_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_ssids_ssid_dot11v_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_ssids_ssid_dot11v_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)


  _pyangbind_elements = OrderedDict([('config', config), ('state', state), ])


class yc_counters_openconfig_access_points__access_points_access_point_ssids_ssid_clients_client_state_counters(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/ssids/ssid/clients/client/state/counters. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Per-client counters.
  """
  __slots__ = ('_path_helper', '_extmethods', '__tx_bytes','__rx_bytes','__rx_retries','__rx_total','__tx_retries','__tx_total',)

  _yang_name = 'counters'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__tx_bytes = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-bytes", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__rx_bytes = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-bytes", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__rx_retries = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-retries", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__rx_total = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-total", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__tx_retries = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-retries", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__tx_total = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-total", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', 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 ['access-points', 'access-point', 'ssids', 'ssid', 'clients', 'client', 'state', 'counters']

  def _get_tx_bytes(self):
    """
    Getter method for tx_bytes, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/state/counters/tx_bytes (oc-yang:counter64)

    YANG Description: Tx Bytes to this client.
    """
    return self.__tx_bytes
      
  def _set_tx_bytes(self, v, load=False):
    """
    Setter method for tx_bytes, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/state/counters/tx_bytes (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tx_bytes is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tx_bytes() directly.

    YANG Description: Tx Bytes to this client.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-bytes", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tx_bytes must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-bytes", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__tx_bytes = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_tx_bytes(self):
    self.__tx_bytes = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-bytes", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_rx_bytes(self):
    """
    Getter method for rx_bytes, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/state/counters/rx_bytes (oc-yang:counter64)

    YANG Description: Rx Bytes from this client.
    """
    return self.__rx_bytes
      
  def _set_rx_bytes(self, v, load=False):
    """
    Setter method for rx_bytes, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/state/counters/rx_bytes (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_bytes is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_bytes() directly.

    YANG Description: Rx Bytes from this client.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-bytes", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_bytes must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-bytes", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__rx_bytes = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rx_bytes(self):
    self.__rx_bytes = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-bytes", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_rx_retries(self):
    """
    Getter method for rx_retries, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/state/counters/rx_retries (oc-yang:counter64)

    YANG Description: Rx retried frames from this client.
    """
    return self.__rx_retries
      
  def _set_rx_retries(self, v, load=False):
    """
    Setter method for rx_retries, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/state/counters/rx_retries (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_retries is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_retries() directly.

    YANG Description: Rx retried frames from this client.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-retries", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_retries must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-retries", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__rx_retries = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rx_retries(self):
    self.__rx_retries = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-retries", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_rx_total(self):
    """
    Getter method for rx_total, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/state/counters/rx_total (oc-yang:counter64)

    YANG Description: Rx frames from this client.
    """
    return self.__rx_total
      
  def _set_rx_total(self, v, load=False):
    """
    Setter method for rx_total, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/state/counters/rx_total (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_total is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_total() directly.

    YANG Description: Rx frames from this client.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-total", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_total must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-total", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__rx_total = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rx_total(self):
    self.__rx_total = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-total", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_tx_retries(self):
    """
    Getter method for tx_retries, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/state/counters/tx_retries (oc-yang:counter64)

    YANG Description: Tx retried frames to this client.
    """
    return self.__tx_retries
      
  def _set_tx_retries(self, v, load=False):
    """
    Setter method for tx_retries, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/state/counters/tx_retries (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tx_retries is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tx_retries() directly.

    YANG Description: Tx retried frames to this client.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-retries", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tx_retries must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-retries", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__tx_retries = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_tx_retries(self):
    self.__tx_retries = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-retries", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_tx_total(self):
    """
    Getter method for tx_total, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/state/counters/tx_total (oc-yang:counter64)

    YANG Description: Tx frames to this client.
    """
    return self.__tx_total
      
  def _set_tx_total(self, v, load=False):
    """
    Setter method for tx_total, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/state/counters/tx_total (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tx_total is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tx_total() directly.

    YANG Description: Tx frames to this client.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-total", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tx_total must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-total", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__tx_total = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_tx_total(self):
    self.__tx_total = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-total", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)

  tx_bytes = __builtin__.property(_get_tx_bytes)
  rx_bytes = __builtin__.property(_get_rx_bytes)
  rx_retries = __builtin__.property(_get_rx_retries)
  rx_total = __builtin__.property(_get_rx_total)
  tx_retries = __builtin__.property(_get_tx_retries)
  tx_total = __builtin__.property(_get_tx_total)


  _pyangbind_elements = OrderedDict([('tx_bytes', tx_bytes), ('rx_bytes', rx_bytes), ('rx_retries', rx_retries), ('rx_total', rx_total), ('tx_retries', tx_retries), ('tx_total', tx_total), ])


class yc_state_openconfig_access_points__access_points_access_point_ssids_ssid_clients_client_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/ssids/ssid/clients/client/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Client state data.
  """
  __slots__ = ('_path_helper', '_extmethods', '__mac','__counters',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__mac = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="mac", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:mac-address', is_config=False)
    self.__counters = YANGDynClass(base=yc_counters_openconfig_access_points__access_points_access_point_ssids_ssid_clients_client_state_counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', 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 ['access-points', 'access-point', 'ssids', 'ssid', 'clients', 'client', 'state']

  def _get_mac(self):
    """
    Getter method for mac, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/state/mac (oc-yang:mac-address)

    YANG Description: MAC address of the client.
    """
    return self.__mac
      
  def _set_mac(self, v, load=False):
    """
    Setter method for mac, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/state/mac (oc-yang:mac-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mac is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mac() directly.

    YANG Description: MAC address of the client.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="mac", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:mac-address', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mac must be of a type compatible with oc-yang:mac-address""",
          'defined-type': "oc-yang:mac-address",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="mac", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:mac-address', is_config=False)""",
        })

    self.__mac = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mac(self):
    self.__mac = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="mac", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:mac-address', is_config=False)


  def _get_counters(self):
    """
    Getter method for counters, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/state/counters (container)

    YANG Description: Per-client counters.
    """
    return self.__counters
      
  def _set_counters(self, v, load=False):
    """
    Setter method for counters, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/state/counters (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_counters is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_counters() directly.

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

    self.__counters = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_counters(self):
    self.__counters = YANGDynClass(base=yc_counters_openconfig_access_points__access_points_access_point_ssids_ssid_clients_client_state_counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)

  mac = __builtin__.property(_get_mac)
  counters = __builtin__.property(_get_counters)


  _pyangbind_elements = OrderedDict([('mac', mac), ('counters', counters), ])


class yc_state_openconfig_access_points__access_points_access_point_ssids_ssid_clients_client_client_rf_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/ssids/ssid/clients/client/client-rf/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Container for RF related client state data.
  """
  __slots__ = ('_path_helper', '_extmethods', '__rssi','__snr','__ss','__phy_rate','__rx_phy_rate','__tx_phy_rate','__connection_mode','__frequency',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__rssi = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), is_leaf=True, yang_name="rssi", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='int8', is_config=False)
    self.__snr = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="snr", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)
    self.__ss = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="ss", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)
    self.__phy_rate = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="phy-rate", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)
    self.__rx_phy_rate = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="rx-phy-rate", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)
    self.__tx_phy_rate = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="tx-phy-rate", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)
    self.__connection_mode = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'A': {}, 'B': {}, 'G': {}, 'N': {}, 'AC': {}, 'AX': {}},), is_leaf=True, yang_name="connection-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='enumeration', is_config=False)
    self.__frequency = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="frequency", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', 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 ['access-points', 'access-point', 'ssids', 'ssid', 'clients', 'client', 'client-rf', 'state']

  def _get_rssi(self):
    """
    Getter method for rssi, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/client_rf/state/rssi (int8)

    YANG Description: The RSSI of this client in dBm. Expressed as negative
number.
    """
    return self.__rssi
      
  def _set_rssi(self, v, load=False):
    """
    Setter method for rssi, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/client_rf/state/rssi (int8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rssi is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rssi() directly.

    YANG Description: The RSSI of this client in dBm. Expressed as negative
number.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), is_leaf=True, yang_name="rssi", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='int8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rssi must be of a type compatible with int8""",
          'defined-type': "int8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), is_leaf=True, yang_name="rssi", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='int8', is_config=False)""",
        })

    self.__rssi = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rssi(self):
    self.__rssi = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), is_leaf=True, yang_name="rssi", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='int8', is_config=False)


  def _get_snr(self):
    """
    Getter method for snr, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/client_rf/state/snr (uint8)

    YANG Description: The SNR of AP to Client, in dB.
    """
    return self.__snr
      
  def _set_snr(self, v, load=False):
    """
    Setter method for snr, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/client_rf/state/snr (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_snr is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_snr() directly.

    YANG Description: The SNR of AP to Client, in dB.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="snr", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """snr must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="snr", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)""",
        })

    self.__snr = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_snr(self):
    self.__snr = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="snr", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)


  def _get_ss(self):
    """
    Getter method for ss, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/client_rf/state/ss (uint8)

    YANG Description: Number of Spatial Streams supported by the client.
    """
    return self.__ss
      
  def _set_ss(self, v, load=False):
    """
    Setter method for ss, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/client_rf/state/ss (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ss is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ss() directly.

    YANG Description: Number of Spatial Streams supported by the client.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="ss", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ss must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="ss", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)""",
        })

    self.__ss = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ss(self):
    self.__ss = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="ss", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)


  def _get_phy_rate(self):
    """
    Getter method for phy_rate, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/client_rf/state/phy_rate (uint16)

    YANG Description: Last used PHY rate of connected client.
    """
    return self.__phy_rate
      
  def _set_phy_rate(self, v, load=False):
    """
    Setter method for phy_rate, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/client_rf/state/phy_rate (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_phy_rate is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_phy_rate() directly.

    YANG Description: Last used PHY rate of connected client.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="phy-rate", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """phy_rate must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="phy-rate", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)""",
        })

    self.__phy_rate = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_phy_rate(self):
    self.__phy_rate = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="phy-rate", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)


  def _get_rx_phy_rate(self):
    """
    Getter method for rx_phy_rate, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/client_rf/state/rx_phy_rate (uint16)

    YANG Description: Last used PHY rate received from connected client in Mbps.
    """
    return self.__rx_phy_rate
      
  def _set_rx_phy_rate(self, v, load=False):
    """
    Setter method for rx_phy_rate, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/client_rf/state/rx_phy_rate (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_phy_rate is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_phy_rate() directly.

    YANG Description: Last used PHY rate received from connected client in Mbps.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="rx-phy-rate", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_phy_rate must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="rx-phy-rate", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)""",
        })

    self.__rx_phy_rate = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rx_phy_rate(self):
    self.__rx_phy_rate = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="rx-phy-rate", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)


  def _get_tx_phy_rate(self):
    """
    Getter method for tx_phy_rate, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/client_rf/state/tx_phy_rate (uint16)

    YANG Description: Last used PHY rate transmitted to connected client in Mbps.
    """
    return self.__tx_phy_rate
      
  def _set_tx_phy_rate(self, v, load=False):
    """
    Setter method for tx_phy_rate, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/client_rf/state/tx_phy_rate (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tx_phy_rate is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tx_phy_rate() directly.

    YANG Description: Last used PHY rate transmitted to connected client in Mbps.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="tx-phy-rate", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tx_phy_rate must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="tx-phy-rate", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)""",
        })

    self.__tx_phy_rate = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_tx_phy_rate(self):
    self.__tx_phy_rate = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="tx-phy-rate", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)


  def _get_connection_mode(self):
    """
    Getter method for connection_mode, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/client_rf/state/connection_mode (enumeration)

    YANG Description: 802.11 protocol used for the client's connection.
    """
    return self.__connection_mode
      
  def _set_connection_mode(self, v, load=False):
    """
    Setter method for connection_mode, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/client_rf/state/connection_mode (enumeration)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_connection_mode is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_connection_mode() directly.

    YANG Description: 802.11 protocol used for the client's connection.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'A': {}, 'B': {}, 'G': {}, 'N': {}, 'AC': {}, 'AX': {}},), is_leaf=True, yang_name="connection-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='enumeration', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """connection_mode must be of a type compatible with enumeration""",
          'defined-type': "openconfig-access-points:enumeration",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'A': {}, 'B': {}, 'G': {}, 'N': {}, 'AC': {}, 'AX': {}},), is_leaf=True, yang_name="connection-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='enumeration', is_config=False)""",
        })

    self.__connection_mode = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_connection_mode(self):
    self.__connection_mode = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'A': {}, 'B': {}, 'G': {}, 'N': {}, 'AC': {}, 'AX': {}},), is_leaf=True, yang_name="connection-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='enumeration', is_config=False)


  def _get_frequency(self):
    """
    Getter method for frequency, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/client_rf/state/frequency (uint8)

    YANG Description: Frequency the client is utilizing. Typically, 2 for a client
connecting over 2.4GHz, 5 and 6 for 5/6GHz respectively.
    """
    return self.__frequency
      
  def _set_frequency(self, v, load=False):
    """
    Setter method for frequency, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/client_rf/state/frequency (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_frequency is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_frequency() directly.

    YANG Description: Frequency the client is utilizing. Typically, 2 for a client
connecting over 2.4GHz, 5 and 6 for 5/6GHz respectively.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="frequency", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """frequency must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="frequency", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)""",
        })

    self.__frequency = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_frequency(self):
    self.__frequency = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="frequency", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)

  rssi = __builtin__.property(_get_rssi)
  snr = __builtin__.property(_get_snr)
  ss = __builtin__.property(_get_ss)
  phy_rate = __builtin__.property(_get_phy_rate)
  rx_phy_rate = __builtin__.property(_get_rx_phy_rate)
  tx_phy_rate = __builtin__.property(_get_tx_phy_rate)
  connection_mode = __builtin__.property(_get_connection_mode)
  frequency = __builtin__.property(_get_frequency)


  _pyangbind_elements = OrderedDict([('rssi', rssi), ('snr', snr), ('ss', ss), ('phy_rate', phy_rate), ('rx_phy_rate', rx_phy_rate), ('tx_phy_rate', tx_phy_rate), ('connection_mode', connection_mode), ('frequency', frequency), ])


class yc_client_rf_openconfig_access_points__access_points_access_point_ssids_ssid_clients_client_client_rf(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/ssids/ssid/clients/client/client-rf. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: RF radio-data per non-AP STA.
  """
  __slots__ = ('_path_helper', '_extmethods', '__state',)

  _yang_name = 'client-rf'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_ssids_ssid_clients_client_client_rf_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/wifi/access-points', defining_module='openconfig-access-points', 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 ['access-points', 'access-point', 'ssids', 'ssid', 'clients', 'client', 'client-rf']

  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/client_rf/state (container)

    YANG Description: Container for RF related client state data.
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/client_rf/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: Container for RF related client state data.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_ssids_ssid_clients_client_client_rf_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/wifi/access-points', defining_module='openconfig-access-points', 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=yc_state_openconfig_access_points__access_points_access_point_ssids_ssid_clients_client_client_rf_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_ssids_ssid_clients_client_client_rf_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)

  state = __builtin__.property(_get_state)


  _pyangbind_elements = OrderedDict([('state', state), ])


class yc_state_openconfig_access_points__access_points_access_point_ssids_ssid_clients_client_client_capabilities_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/ssids/ssid/clients/client/client-capabilities/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Container for Client capabilities, as reported by Assoc. Req.
or Probe Req. frames. Capability is supported, if present.
  """
  __slots__ = ('_path_helper', '_extmethods', '__client_capabilities','__channel_support',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__client_capabilities = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'MU_BEAMFORMER': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:MU_BEAMFORMER': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:MU_BEAMFORMER': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'MU_BEAMFORMEE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:MU_BEAMFORMEE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:MU_BEAMFORMEE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'OFDMA': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:OFDMA': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:OFDMA': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'DOT_11R': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:DOT_11R': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:DOT_11R': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'DOT_11V': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:DOT_11V': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:DOT_11V': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'MFP': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:MFP': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:MFP': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="client-capabilities", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)
    self.__channel_support = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="channel-support", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', 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 ['access-points', 'access-point', 'ssids', 'ssid', 'clients', 'client', 'client-capabilities', 'state']

  def _get_client_capabilities(self):
    """
    Getter method for client_capabilities, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/client_capabilities/state/client_capabilities (identityref)

    YANG Description: Features supported by client that are Optional
within the 802.11 specifications.
    """
    return self.__client_capabilities
      
  def _set_client_capabilities(self, v, load=False):
    """
    Setter method for client_capabilities, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/client_capabilities/state/client_capabilities (identityref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_client_capabilities is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_client_capabilities() directly.

    YANG Description: Features supported by client that are Optional
within the 802.11 specifications.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'MU_BEAMFORMER': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:MU_BEAMFORMER': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:MU_BEAMFORMER': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'MU_BEAMFORMEE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:MU_BEAMFORMEE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:MU_BEAMFORMEE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'OFDMA': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:OFDMA': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:OFDMA': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'DOT_11R': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:DOT_11R': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:DOT_11R': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'DOT_11V': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:DOT_11V': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:DOT_11V': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'MFP': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:MFP': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:MFP': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="client-capabilities", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """client_capabilities must be of a type compatible with identityref""",
          'defined-type': "openconfig-access-points:identityref",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'MU_BEAMFORMER': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:MU_BEAMFORMER': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:MU_BEAMFORMER': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'MU_BEAMFORMEE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:MU_BEAMFORMEE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:MU_BEAMFORMEE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'OFDMA': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:OFDMA': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:OFDMA': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'DOT_11R': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:DOT_11R': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:DOT_11R': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'DOT_11V': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:DOT_11V': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:DOT_11V': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'MFP': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:MFP': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:MFP': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="client-capabilities", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)""",
        })

    self.__client_capabilities = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_client_capabilities(self):
    self.__client_capabilities = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'MU_BEAMFORMER': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:MU_BEAMFORMER': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:MU_BEAMFORMER': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'MU_BEAMFORMEE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:MU_BEAMFORMEE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:MU_BEAMFORMEE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'OFDMA': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:OFDMA': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:OFDMA': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'DOT_11R': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:DOT_11R': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:DOT_11R': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'DOT_11V': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:DOT_11V': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:DOT_11V': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'MFP': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:MFP': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:MFP': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="client-capabilities", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)


  def _get_channel_support(self):
    """
    Getter method for channel_support, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/client_capabilities/state/channel_support (uint8)

    YANG Description: List of supported channels.
    """
    return self.__channel_support
      
  def _set_channel_support(self, v, load=False):
    """
    Setter method for channel_support, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/client_capabilities/state/channel_support (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_channel_support is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_channel_support() directly.

    YANG Description: List of supported channels.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="channel-support", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """channel_support must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="channel-support", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)""",
        })

    self.__channel_support = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_channel_support(self):
    self.__channel_support = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="channel-support", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)

  client_capabilities = __builtin__.property(_get_client_capabilities)
  channel_support = __builtin__.property(_get_channel_support)


  _pyangbind_elements = OrderedDict([('client_capabilities', client_capabilities), ('channel_support', channel_support), ])


class yc_client_capabilities_openconfig_access_points__access_points_access_point_ssids_ssid_clients_client_client_capabilities(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/ssids/ssid/clients/client/client-capabilities. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Capabilites as advertised by the Client.
  """
  __slots__ = ('_path_helper', '_extmethods', '__state',)

  _yang_name = 'client-capabilities'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_ssids_ssid_clients_client_client_capabilities_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/wifi/access-points', defining_module='openconfig-access-points', 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 ['access-points', 'access-point', 'ssids', 'ssid', 'clients', 'client', 'client-capabilities']

  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/client_capabilities/state (container)

    YANG Description: Container for Client capabilities, as reported by Assoc. Req.
or Probe Req. frames. Capability is supported, if present.
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/client_capabilities/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: Container for Client capabilities, as reported by Assoc. Req.
or Probe Req. frames. Capability is supported, if present.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_ssids_ssid_clients_client_client_capabilities_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/wifi/access-points', defining_module='openconfig-access-points', 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=yc_state_openconfig_access_points__access_points_access_point_ssids_ssid_clients_client_client_capabilities_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_ssids_ssid_clients_client_client_capabilities_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)

  state = __builtin__.property(_get_state)


  _pyangbind_elements = OrderedDict([('state', state), ])


class yc_state_openconfig_access_points__access_points_access_point_ssids_ssid_clients_client_dot11k_neighbors_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/ssids/ssid/clients/client/dot11k-neighbors/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Container for Client beacon reports. Requires 802.11k
enabled. See Sec. 5.2.7.1 of 802.11k-2008 Standard.
  """
  __slots__ = ('_path_helper', '_extmethods', '__neighbor_bssid','__neighbor_channel','__neighbor_rssi','__neighbor_antenna','__channel_load_report',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__neighbor_bssid = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="neighbor-bssid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:mac-address', is_config=False)
    self.__neighbor_channel = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="neighbor-channel", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)
    self.__neighbor_rssi = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), is_leaf=True, yang_name="neighbor-rssi", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='int8', is_config=False)
    self.__neighbor_antenna = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="neighbor-antenna", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)
    self.__channel_load_report = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="channel-load-report", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', 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 ['access-points', 'access-point', 'ssids', 'ssid', 'clients', 'client', 'dot11k-neighbors', 'state']

  def _get_neighbor_bssid(self):
    """
    Getter method for neighbor_bssid, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/dot11k_neighbors/state/neighbor_bssid (oc-yang:mac-address)

    YANG Description: The BSSID of this neighbor.
    """
    return self.__neighbor_bssid
      
  def _set_neighbor_bssid(self, v, load=False):
    """
    Setter method for neighbor_bssid, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/dot11k_neighbors/state/neighbor_bssid (oc-yang:mac-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_neighbor_bssid is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_neighbor_bssid() directly.

    YANG Description: The BSSID of this neighbor.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="neighbor-bssid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:mac-address', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """neighbor_bssid must be of a type compatible with oc-yang:mac-address""",
          'defined-type': "oc-yang:mac-address",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="neighbor-bssid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:mac-address', is_config=False)""",
        })

    self.__neighbor_bssid = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_neighbor_bssid(self):
    self.__neighbor_bssid = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="neighbor-bssid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:mac-address', is_config=False)


  def _get_neighbor_channel(self):
    """
    Getter method for neighbor_channel, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/dot11k_neighbors/state/neighbor_channel (uint8)

    YANG Description: The channel of this neighbor.
    """
    return self.__neighbor_channel
      
  def _set_neighbor_channel(self, v, load=False):
    """
    Setter method for neighbor_channel, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/dot11k_neighbors/state/neighbor_channel (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_neighbor_channel is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_neighbor_channel() directly.

    YANG Description: The channel of this neighbor.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="neighbor-channel", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """neighbor_channel must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="neighbor-channel", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)""",
        })

    self.__neighbor_channel = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_neighbor_channel(self):
    self.__neighbor_channel = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="neighbor-channel", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)


  def _get_neighbor_rssi(self):
    """
    Getter method for neighbor_rssi, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/dot11k_neighbors/state/neighbor_rssi (int8)

    YANG Description: The RSSI of this neighbor in dBm, expressed as a negative
number.
    """
    return self.__neighbor_rssi
      
  def _set_neighbor_rssi(self, v, load=False):
    """
    Setter method for neighbor_rssi, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/dot11k_neighbors/state/neighbor_rssi (int8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_neighbor_rssi is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_neighbor_rssi() directly.

    YANG Description: The RSSI of this neighbor in dBm, expressed as a negative
number.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), is_leaf=True, yang_name="neighbor-rssi", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='int8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """neighbor_rssi must be of a type compatible with int8""",
          'defined-type': "int8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), is_leaf=True, yang_name="neighbor-rssi", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='int8', is_config=False)""",
        })

    self.__neighbor_rssi = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_neighbor_rssi(self):
    self.__neighbor_rssi = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), is_leaf=True, yang_name="neighbor-rssi", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='int8', is_config=False)


  def _get_neighbor_antenna(self):
    """
    Getter method for neighbor_antenna, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/dot11k_neighbors/state/neighbor_antenna (uint8)

    YANG Description: Antenna details for this neighbor.
    """
    return self.__neighbor_antenna
      
  def _set_neighbor_antenna(self, v, load=False):
    """
    Setter method for neighbor_antenna, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/dot11k_neighbors/state/neighbor_antenna (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_neighbor_antenna is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_neighbor_antenna() directly.

    YANG Description: Antenna details for this neighbor.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="neighbor-antenna", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """neighbor_antenna must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="neighbor-antenna", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)""",
        })

    self.__neighbor_antenna = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_neighbor_antenna(self):
    self.__neighbor_antenna = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="neighbor-antenna", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)


  def _get_channel_load_report(self):
    """
    Getter method for channel_load_report, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/dot11k_neighbors/state/channel_load_report (uint8)

    YANG Description: Channel load, as reported by Client to AP
normalized to 255. See Sec. 10.11.9.3 of 802.11ac-2013
Spec.
    """
    return self.__channel_load_report
      
  def _set_channel_load_report(self, v, load=False):
    """
    Setter method for channel_load_report, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/dot11k_neighbors/state/channel_load_report (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_channel_load_report is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_channel_load_report() directly.

    YANG Description: Channel load, as reported by Client to AP
normalized to 255. See Sec. 10.11.9.3 of 802.11ac-2013
Spec.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="channel-load-report", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """channel_load_report must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="channel-load-report", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)""",
        })

    self.__channel_load_report = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_channel_load_report(self):
    self.__channel_load_report = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="channel-load-report", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)

  neighbor_bssid = __builtin__.property(_get_neighbor_bssid)
  neighbor_channel = __builtin__.property(_get_neighbor_channel)
  neighbor_rssi = __builtin__.property(_get_neighbor_rssi)
  neighbor_antenna = __builtin__.property(_get_neighbor_antenna)
  channel_load_report = __builtin__.property(_get_channel_load_report)


  _pyangbind_elements = OrderedDict([('neighbor_bssid', neighbor_bssid), ('neighbor_channel', neighbor_channel), ('neighbor_rssi', neighbor_rssi), ('neighbor_antenna', neighbor_antenna), ('channel_load_report', channel_load_report), ])


class yc_dot11k_neighbors_openconfig_access_points__access_points_access_point_ssids_ssid_clients_client_dot11k_neighbors(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/ssids/ssid/clients/client/dot11k-neighbors. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: 80211.k nieghbor information given from the Client to
the infrastructure.
  """
  __slots__ = ('_path_helper', '_extmethods', '__state',)

  _yang_name = 'dot11k-neighbors'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_ssids_ssid_clients_client_dot11k_neighbors_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/wifi/access-points', defining_module='openconfig-access-points', 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 ['access-points', 'access-point', 'ssids', 'ssid', 'clients', 'client', 'dot11k-neighbors']

  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/dot11k_neighbors/state (container)

    YANG Description: Container for Client beacon reports. Requires 802.11k
enabled. See Sec. 5.2.7.1 of 802.11k-2008 Standard.
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/dot11k_neighbors/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: Container for Client beacon reports. Requires 802.11k
enabled. See Sec. 5.2.7.1 of 802.11k-2008 Standard.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_ssids_ssid_clients_client_dot11k_neighbors_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/wifi/access-points', defining_module='openconfig-access-points', 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=yc_state_openconfig_access_points__access_points_access_point_ssids_ssid_clients_client_dot11k_neighbors_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_ssids_ssid_clients_client_dot11k_neighbors_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)

  state = __builtin__.property(_get_state)


  _pyangbind_elements = OrderedDict([('state', state), ])


class yc_state_openconfig_access_points__access_points_access_point_ssids_ssid_clients_client_client_connection_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/ssids/ssid/clients/client/client-connection/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Container for connection state related data, per client.
  """
  __slots__ = ('_path_helper', '_extmethods', '__client_state','__connection_time','__username','__hostname','__ipv4_address','__ipv6_addresses','__operating_system',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__client_state = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'ASSOCIATED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:ASSOCIATED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:ASSOCIATED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'L2AUTH_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:L2AUTH_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:L2AUTH_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'L3AUTH_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:L3AUTH_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:L3AUTH_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'DHCP_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:DHCP_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:DHCP_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'AUTHENTICATED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:AUTHENTICATED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:AUTHENTICATED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'L2AUTH_FAILURE_REJECT': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:L2AUTH_FAILURE_REJECT': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:L2AUTH_FAILURE_REJECT': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'L2AUTH_FAILURE_TIMEOUT': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:L2AUTH_FAILURE_TIMEOUT': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:L2AUTH_FAILURE_TIMEOUT': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'L3AUTH_FAILURE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:L3AUTH_FAILURE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:L3AUTH_FAILURE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'DHCP_FAILURE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:DHCP_FAILURE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:DHCP_FAILURE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'POWERSAVE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:POWERSAVE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:POWERSAVE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'BLACKLISTED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:BLACKLISTED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:BLACKLISTED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},), is_leaf=True, yang_name="client-state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)
    self.__connection_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="connection-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)
    self.__username = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="username", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)
    self.__hostname = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="hostname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)
    self.__ipv4_address = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'})), is_leaf=False, yang_name="ipv4-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ipv4-address', is_config=False)
    self.__ipv6_addresses = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'})), is_leaf=False, yang_name="ipv6-addresses", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ipv6-address', is_config=False)
    self.__operating_system = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="operating-system", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', 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 ['access-points', 'access-point', 'ssids', 'ssid', 'clients', 'client', 'client-connection', 'state']

  def _get_client_state(self):
    """
    Getter method for client_state, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/client_connection/state/client_state (identityref)

    YANG Description: Various states a Client STA may be in.
    """
    return self.__client_state
      
  def _set_client_state(self, v, load=False):
    """
    Setter method for client_state, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/client_connection/state/client_state (identityref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_client_state is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_client_state() directly.

    YANG Description: Various states a Client STA may be in.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'ASSOCIATED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:ASSOCIATED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:ASSOCIATED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'L2AUTH_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:L2AUTH_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:L2AUTH_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'L3AUTH_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:L3AUTH_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:L3AUTH_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'DHCP_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:DHCP_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:DHCP_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'AUTHENTICATED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:AUTHENTICATED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:AUTHENTICATED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'L2AUTH_FAILURE_REJECT': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:L2AUTH_FAILURE_REJECT': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:L2AUTH_FAILURE_REJECT': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'L2AUTH_FAILURE_TIMEOUT': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:L2AUTH_FAILURE_TIMEOUT': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:L2AUTH_FAILURE_TIMEOUT': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'L3AUTH_FAILURE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:L3AUTH_FAILURE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:L3AUTH_FAILURE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'DHCP_FAILURE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:DHCP_FAILURE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:DHCP_FAILURE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'POWERSAVE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:POWERSAVE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:POWERSAVE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'BLACKLISTED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:BLACKLISTED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:BLACKLISTED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},), is_leaf=True, yang_name="client-state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """client_state must be of a type compatible with identityref""",
          'defined-type': "openconfig-access-points:identityref",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'ASSOCIATED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:ASSOCIATED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:ASSOCIATED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'L2AUTH_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:L2AUTH_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:L2AUTH_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'L3AUTH_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:L3AUTH_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:L3AUTH_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'DHCP_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:DHCP_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:DHCP_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'AUTHENTICATED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:AUTHENTICATED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:AUTHENTICATED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'L2AUTH_FAILURE_REJECT': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:L2AUTH_FAILURE_REJECT': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:L2AUTH_FAILURE_REJECT': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'L2AUTH_FAILURE_TIMEOUT': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:L2AUTH_FAILURE_TIMEOUT': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:L2AUTH_FAILURE_TIMEOUT': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'L3AUTH_FAILURE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:L3AUTH_FAILURE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:L3AUTH_FAILURE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'DHCP_FAILURE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:DHCP_FAILURE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:DHCP_FAILURE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'POWERSAVE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:POWERSAVE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:POWERSAVE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'BLACKLISTED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:BLACKLISTED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:BLACKLISTED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},), is_leaf=True, yang_name="client-state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)""",
        })

    self.__client_state = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_client_state(self):
    self.__client_state = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'ASSOCIATED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:ASSOCIATED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:ASSOCIATED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'L2AUTH_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:L2AUTH_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:L2AUTH_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'L3AUTH_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:L3AUTH_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:L3AUTH_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'DHCP_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:DHCP_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:DHCP_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'AUTHENTICATED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:AUTHENTICATED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:AUTHENTICATED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'L2AUTH_FAILURE_REJECT': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:L2AUTH_FAILURE_REJECT': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:L2AUTH_FAILURE_REJECT': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'L2AUTH_FAILURE_TIMEOUT': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:L2AUTH_FAILURE_TIMEOUT': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:L2AUTH_FAILURE_TIMEOUT': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'L3AUTH_FAILURE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:L3AUTH_FAILURE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:L3AUTH_FAILURE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'DHCP_FAILURE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:DHCP_FAILURE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:DHCP_FAILURE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'POWERSAVE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:POWERSAVE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:POWERSAVE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'BLACKLISTED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:BLACKLISTED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:BLACKLISTED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},), is_leaf=True, yang_name="client-state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)


  def _get_connection_time(self):
    """
    Getter method for connection_time, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/client_connection/state/connection_time (oc-types:timeticks64)

    YANG Description: Reports the time of Client Association. The value is the
timestamp in nanoseconds relative to the Unix Epoch
(Jan 1, 1970 00:00:00 UTC).
    """
    return self.__connection_time
      
  def _set_connection_time(self, v, load=False):
    """
    Setter method for connection_time, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/client_connection/state/connection_time (oc-types:timeticks64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_connection_time is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_connection_time() directly.

    YANG Description: Reports the time of Client Association. The value is the
timestamp in nanoseconds relative to the Unix Epoch
(Jan 1, 1970 00:00:00 UTC).
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="connection-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """connection_time must be of a type compatible with oc-types:timeticks64""",
          'defined-type': "oc-types:timeticks64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="connection-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)""",
        })

    self.__connection_time = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_connection_time(self):
    self.__connection_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="connection-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)


  def _get_username(self):
    """
    Getter method for username, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/client_connection/state/username (string)

    YANG Description: Username of Client; can be outer-identity (if PEAP),
CN of certificate (if EAP-TLS), etc.
    """
    return self.__username
      
  def _set_username(self, v, load=False):
    """
    Setter method for username, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/client_connection/state/username (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_username is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_username() directly.

    YANG Description: Username of Client; can be outer-identity (if PEAP),
CN of certificate (if EAP-TLS), etc.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="username", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """username must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="username", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)""",
        })

    self.__username = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_username(self):
    self.__username = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="username", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)


  def _get_hostname(self):
    """
    Getter method for hostname, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/client_connection/state/hostname (string)

    YANG Description: Hostname of the client, as discovered via DHCP, mDNS
or otherwise.
    """
    return self.__hostname
      
  def _set_hostname(self, v, load=False):
    """
    Setter method for hostname, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/client_connection/state/hostname (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_hostname is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_hostname() directly.

    YANG Description: Hostname of the client, as discovered via DHCP, mDNS
or otherwise.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="hostname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """hostname must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="hostname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)""",
        })

    self.__hostname = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_hostname(self):
    self.__hostname = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="hostname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)


  def _get_ipv4_address(self):
    """
    Getter method for ipv4_address, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/client_connection/state/ipv4_address (oc-inet:ipv4-address)

    YANG Description: IPv4 addresses of the client.
    """
    return self.__ipv4_address
      
  def _set_ipv4_address(self, v, load=False):
    """
    Setter method for ipv4_address, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/client_connection/state/ipv4_address (oc-inet:ipv4-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ipv4_address is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ipv4_address() directly.

    YANG Description: IPv4 addresses of the client.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'})), is_leaf=False, yang_name="ipv4-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ipv4-address', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ipv4_address must be of a type compatible with oc-inet:ipv4-address""",
          'defined-type': "oc-inet:ipv4-address",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'})), is_leaf=False, yang_name="ipv4-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ipv4-address', is_config=False)""",
        })

    self.__ipv4_address = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ipv4_address(self):
    self.__ipv4_address = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'})), is_leaf=False, yang_name="ipv4-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ipv4-address', is_config=False)


  def _get_ipv6_addresses(self):
    """
    Getter method for ipv6_addresses, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/client_connection/state/ipv6_addresses (oc-inet:ipv6-address)

    YANG Description: IPv6 addresses of the client.
    """
    return self.__ipv6_addresses
      
  def _set_ipv6_addresses(self, v, load=False):
    """
    Setter method for ipv6_addresses, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/client_connection/state/ipv6_addresses (oc-inet:ipv6-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ipv6_addresses is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ipv6_addresses() directly.

    YANG Description: IPv6 addresses of the client.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'})), is_leaf=False, yang_name="ipv6-addresses", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ipv6-address', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ipv6_addresses must be of a type compatible with oc-inet:ipv6-address""",
          'defined-type': "oc-inet:ipv6-address",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'})), is_leaf=False, yang_name="ipv6-addresses", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ipv6-address', is_config=False)""",
        })

    self.__ipv6_addresses = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ipv6_addresses(self):
    self.__ipv6_addresses = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'})), is_leaf=False, yang_name="ipv6-addresses", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ipv6-address', is_config=False)


  def _get_operating_system(self):
    """
    Getter method for operating_system, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/client_connection/state/operating_system (string)

    YANG Description: Optional/if known; the OS of the client.
    """
    return self.__operating_system
      
  def _set_operating_system(self, v, load=False):
    """
    Setter method for operating_system, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/client_connection/state/operating_system (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_operating_system is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_operating_system() directly.

    YANG Description: Optional/if known; the OS of the client.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="operating-system", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """operating_system must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="operating-system", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)""",
        })

    self.__operating_system = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_operating_system(self):
    self.__operating_system = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="operating-system", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)

  client_state = __builtin__.property(_get_client_state)
  connection_time = __builtin__.property(_get_connection_time)
  username = __builtin__.property(_get_username)
  hostname = __builtin__.property(_get_hostname)
  ipv4_address = __builtin__.property(_get_ipv4_address)
  ipv6_addresses = __builtin__.property(_get_ipv6_addresses)
  operating_system = __builtin__.property(_get_operating_system)


  _pyangbind_elements = OrderedDict([('client_state', client_state), ('connection_time', connection_time), ('username', username), ('hostname', hostname), ('ipv4_address', ipv4_address), ('ipv6_addresses', ipv6_addresses), ('operating_system', operating_system), ])


class yc_client_connection_openconfig_access_points__access_points_access_point_ssids_ssid_clients_client_client_connection(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/ssids/ssid/clients/client/client-connection. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Connection-state and meta-data associated with the
Client.
  """
  __slots__ = ('_path_helper', '_extmethods', '__state',)

  _yang_name = 'client-connection'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_ssids_ssid_clients_client_client_connection_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/wifi/access-points', defining_module='openconfig-access-points', 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 ['access-points', 'access-point', 'ssids', 'ssid', 'clients', 'client', 'client-connection']

  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/client_connection/state (container)

    YANG Description: Container for connection state related data, per client.
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/client_connection/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: Container for connection state related data, per client.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_ssids_ssid_clients_client_client_connection_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/wifi/access-points', defining_module='openconfig-access-points', 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=yc_state_openconfig_access_points__access_points_access_point_ssids_ssid_clients_client_client_connection_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_ssids_ssid_clients_client_client_connection_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)

  state = __builtin__.property(_get_state)


  _pyangbind_elements = OrderedDict([('state', state), ])


class yc_client_openconfig_access_points__access_points_access_point_ssids_ssid_clients_client(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/ssids/ssid/clients/client. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: List of clients per BSS.
  """
  __slots__ = ('_path_helper', '_extmethods', '__mac','__state','__client_rf','__client_capabilities','__dot11k_neighbors','__client_connection',)

  _yang_name = 'client'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__mac = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="mac", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=False)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_ssids_ssid_clients_client_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)
    self.__client_rf = YANGDynClass(base=yc_client_rf_openconfig_access_points__access_points_access_point_ssids_ssid_clients_client_client_rf, is_container='container', yang_name="client-rf", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)
    self.__client_capabilities = YANGDynClass(base=yc_client_capabilities_openconfig_access_points__access_points_access_point_ssids_ssid_clients_client_client_capabilities, is_container='container', yang_name="client-capabilities", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)
    self.__dot11k_neighbors = YANGDynClass(base=yc_dot11k_neighbors_openconfig_access_points__access_points_access_point_ssids_ssid_clients_client_dot11k_neighbors, is_container='container', yang_name="dot11k-neighbors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)
    self.__client_connection = YANGDynClass(base=yc_client_connection_openconfig_access_points__access_points_access_point_ssids_ssid_clients_client_client_connection, is_container='container', yang_name="client-connection", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', 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 ['access-points', 'access-point', 'ssids', 'ssid', 'clients', 'client']

  def _get_mac(self):
    """
    Getter method for mac, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/mac (leafref)

    YANG Description: The clients WiFi MAC address.
    """
    return self.__mac
      
  def _set_mac(self, v, load=False):
    """
    Setter method for mac, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/mac (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mac is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mac() directly.

    YANG Description: The clients WiFi MAC address.
    """
    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="mac", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mac must be of a type compatible with leafref""",
          'defined-type': "leafref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="mac", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=False)""",
        })

    self.__mac = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mac(self):
    self.__mac = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="mac", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=False)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/state (container)

    YANG Description: Client state data.
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/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: Client state data.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_ssids_ssid_clients_client_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/wifi/access-points', defining_module='openconfig-access-points', 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=yc_state_openconfig_access_points__access_points_access_point_ssids_ssid_clients_client_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_ssids_ssid_clients_client_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)


  def _get_client_rf(self):
    """
    Getter method for client_rf, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/client_rf (container)

    YANG Description: RF radio-data per non-AP STA.
    """
    return self.__client_rf
      
  def _set_client_rf(self, v, load=False):
    """
    Setter method for client_rf, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/client_rf (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_client_rf is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_client_rf() directly.

    YANG Description: RF radio-data per non-AP STA.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_client_rf_openconfig_access_points__access_points_access_point_ssids_ssid_clients_client_client_rf, is_container='container', yang_name="client-rf", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """client_rf must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_client_rf_openconfig_access_points__access_points_access_point_ssids_ssid_clients_client_client_rf, is_container='container', yang_name="client-rf", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)""",
        })

    self.__client_rf = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_client_rf(self):
    self.__client_rf = YANGDynClass(base=yc_client_rf_openconfig_access_points__access_points_access_point_ssids_ssid_clients_client_client_rf, is_container='container', yang_name="client-rf", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)


  def _get_client_capabilities(self):
    """
    Getter method for client_capabilities, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/client_capabilities (container)

    YANG Description: Capabilites as advertised by the Client.
    """
    return self.__client_capabilities
      
  def _set_client_capabilities(self, v, load=False):
    """
    Setter method for client_capabilities, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/client_capabilities (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_client_capabilities is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_client_capabilities() directly.

    YANG Description: Capabilites as advertised by the Client.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_client_capabilities_openconfig_access_points__access_points_access_point_ssids_ssid_clients_client_client_capabilities, is_container='container', yang_name="client-capabilities", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """client_capabilities must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_client_capabilities_openconfig_access_points__access_points_access_point_ssids_ssid_clients_client_client_capabilities, is_container='container', yang_name="client-capabilities", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)""",
        })

    self.__client_capabilities = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_client_capabilities(self):
    self.__client_capabilities = YANGDynClass(base=yc_client_capabilities_openconfig_access_points__access_points_access_point_ssids_ssid_clients_client_client_capabilities, is_container='container', yang_name="client-capabilities", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)


  def _get_dot11k_neighbors(self):
    """
    Getter method for dot11k_neighbors, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/dot11k_neighbors (container)

    YANG Description: 80211.k nieghbor information given from the Client to
the infrastructure.
    """
    return self.__dot11k_neighbors
      
  def _set_dot11k_neighbors(self, v, load=False):
    """
    Setter method for dot11k_neighbors, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/dot11k_neighbors (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dot11k_neighbors is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dot11k_neighbors() directly.

    YANG Description: 80211.k nieghbor information given from the Client to
the infrastructure.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_dot11k_neighbors_openconfig_access_points__access_points_access_point_ssids_ssid_clients_client_dot11k_neighbors, is_container='container', yang_name="dot11k-neighbors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dot11k_neighbors must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_dot11k_neighbors_openconfig_access_points__access_points_access_point_ssids_ssid_clients_client_dot11k_neighbors, is_container='container', yang_name="dot11k-neighbors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)""",
        })

    self.__dot11k_neighbors = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dot11k_neighbors(self):
    self.__dot11k_neighbors = YANGDynClass(base=yc_dot11k_neighbors_openconfig_access_points__access_points_access_point_ssids_ssid_clients_client_dot11k_neighbors, is_container='container', yang_name="dot11k-neighbors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)


  def _get_client_connection(self):
    """
    Getter method for client_connection, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/client_connection (container)

    YANG Description: Connection-state and meta-data associated with the
Client.
    """
    return self.__client_connection
      
  def _set_client_connection(self, v, load=False):
    """
    Setter method for client_connection, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client/client_connection (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_client_connection is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_client_connection() directly.

    YANG Description: Connection-state and meta-data associated with the
Client.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_client_connection_openconfig_access_points__access_points_access_point_ssids_ssid_clients_client_client_connection, is_container='container', yang_name="client-connection", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """client_connection must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_client_connection_openconfig_access_points__access_points_access_point_ssids_ssid_clients_client_client_connection, is_container='container', yang_name="client-connection", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)""",
        })

    self.__client_connection = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_client_connection(self):
    self.__client_connection = YANGDynClass(base=yc_client_connection_openconfig_access_points__access_points_access_point_ssids_ssid_clients_client_client_connection, is_container='container', yang_name="client-connection", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)

  mac = __builtin__.property(_get_mac)
  state = __builtin__.property(_get_state)
  client_rf = __builtin__.property(_get_client_rf)
  client_capabilities = __builtin__.property(_get_client_capabilities)
  dot11k_neighbors = __builtin__.property(_get_dot11k_neighbors)
  client_connection = __builtin__.property(_get_client_connection)


  _pyangbind_elements = OrderedDict([('mac', mac), ('state', state), ('client_rf', client_rf), ('client_capabilities', client_capabilities), ('dot11k_neighbors', dot11k_neighbors), ('client_connection', client_connection), ])


class yc_clients_openconfig_access_points__access_points_access_point_ssids_ssid_clients(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/ssids/ssid/clients. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Top-level container for clients operational state data.
  """
  __slots__ = ('_path_helper', '_extmethods', '__client',)

  _yang_name = 'clients'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__client = YANGDynClass(base=YANGListType("mac",yc_client_openconfig_access_points__access_points_access_point_ssids_ssid_clients_client, yang_name="client", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='mac', extensions=None), is_container='list', yang_name="client", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)

    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 ['access-points', 'access-point', 'ssids', 'ssid', 'clients']

  def _get_client(self):
    """
    Getter method for client, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client (list)

    YANG Description: List of clients per BSS.
    """
    return self.__client
      
  def _set_client(self, v, load=False):
    """
    Setter method for client, mapped from YANG variable /access_points/access_point/ssids/ssid/clients/client (list)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_client is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_client() directly.

    YANG Description: List of clients per BSS.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGListType("mac",yc_client_openconfig_access_points__access_points_access_point_ssids_ssid_clients_client, yang_name="client", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='mac', extensions=None), is_container='list', yang_name="client", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """client must be of a type compatible with list""",
          'defined-type': "list",
          'generated-type': """YANGDynClass(base=YANGListType("mac",yc_client_openconfig_access_points__access_points_access_point_ssids_ssid_clients_client, yang_name="client", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='mac', extensions=None), is_container='list', yang_name="client", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)""",
        })

    self.__client = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_client(self):
    self.__client = YANGDynClass(base=YANGListType("mac",yc_client_openconfig_access_points__access_points_access_point_ssids_ssid_clients_client, yang_name="client", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='mac', extensions=None), is_container='list', yang_name="client", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)

  client = __builtin__.property(_get_client, _set_client)


  _pyangbind_elements = OrderedDict([('client', client), ])


class yc_config_openconfig_access_points__access_points_access_point_ssids_ssid_dot1x_timers_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/ssids/ssid/dot1x-timers/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Container for dot1x configuration elements.
  """
  __slots__ = ('_path_helper', '_extmethods', '__max_auth_failures','__blacklist_time',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__max_auth_failures = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="max-auth-failures", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=True)
    self.__blacklist_time = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="blacklist-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=True)

    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 ['access-points', 'access-point', 'ssids', 'ssid', 'dot1x-timers', 'config']

  def _get_max_auth_failures(self):
    """
    Getter method for max_auth_failures, mapped from YANG variable /access_points/access_point/ssids/ssid/dot1x_timers/config/max_auth_failures (uint8)

    YANG Description: Number of consecutive authentication failures,
via RADIUS Access-Reject, before Station
is blacklisted.
    """
    return self.__max_auth_failures
      
  def _set_max_auth_failures(self, v, load=False):
    """
    Setter method for max_auth_failures, mapped from YANG variable /access_points/access_point/ssids/ssid/dot1x_timers/config/max_auth_failures (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_max_auth_failures is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_max_auth_failures() directly.

    YANG Description: Number of consecutive authentication failures,
via RADIUS Access-Reject, before Station
is blacklisted.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="max-auth-failures", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """max_auth_failures must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="max-auth-failures", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=True)""",
        })

    self.__max_auth_failures = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_max_auth_failures(self):
    self.__max_auth_failures = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="max-auth-failures", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=True)


  def _get_blacklist_time(self):
    """
    Getter method for blacklist_time, mapped from YANG variable /access_points/access_point/ssids/ssid/dot1x_timers/config/blacklist_time (uint16)

    YANG Description: Length of time, in seconds, a Station will be
blacklisted as a result of max-auth-failures.
    """
    return self.__blacklist_time
      
  def _set_blacklist_time(self, v, load=False):
    """
    Setter method for blacklist_time, mapped from YANG variable /access_points/access_point/ssids/ssid/dot1x_timers/config/blacklist_time (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_blacklist_time is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_blacklist_time() directly.

    YANG Description: Length of time, in seconds, a Station will be
blacklisted as a result of max-auth-failures.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="blacklist-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """blacklist_time must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="blacklist-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=True)""",
        })

    self.__blacklist_time = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_blacklist_time(self):
    self.__blacklist_time = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="blacklist-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=True)

  max_auth_failures = __builtin__.property(_get_max_auth_failures, _set_max_auth_failures)
  blacklist_time = __builtin__.property(_get_blacklist_time, _set_blacklist_time)


  _pyangbind_elements = OrderedDict([('max_auth_failures', max_auth_failures), ('blacklist_time', blacklist_time), ])


class yc_state_openconfig_access_points__access_points_access_point_ssids_ssid_dot1x_timers_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/ssids/ssid/dot1x-timers/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Container for dot1x state elements.
  """
  __slots__ = ('_path_helper', '_extmethods', '__max_auth_failures','__blacklist_time',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__max_auth_failures = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="max-auth-failures", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)
    self.__blacklist_time = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="blacklist-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', 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 ['access-points', 'access-point', 'ssids', 'ssid', 'dot1x-timers', 'state']

  def _get_max_auth_failures(self):
    """
    Getter method for max_auth_failures, mapped from YANG variable /access_points/access_point/ssids/ssid/dot1x_timers/state/max_auth_failures (uint8)

    YANG Description: Number of consecutive authentication failures,
via RADIUS Access-Reject, before Station
is blacklisted.
    """
    return self.__max_auth_failures
      
  def _set_max_auth_failures(self, v, load=False):
    """
    Setter method for max_auth_failures, mapped from YANG variable /access_points/access_point/ssids/ssid/dot1x_timers/state/max_auth_failures (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_max_auth_failures is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_max_auth_failures() directly.

    YANG Description: Number of consecutive authentication failures,
via RADIUS Access-Reject, before Station
is blacklisted.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="max-auth-failures", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """max_auth_failures must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="max-auth-failures", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)""",
        })

    self.__max_auth_failures = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_max_auth_failures(self):
    self.__max_auth_failures = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="max-auth-failures", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)


  def _get_blacklist_time(self):
    """
    Getter method for blacklist_time, mapped from YANG variable /access_points/access_point/ssids/ssid/dot1x_timers/state/blacklist_time (uint16)

    YANG Description: Length of time, in seconds, a Station will be
blacklisted as a result of max-auth-failures.
    """
    return self.__blacklist_time
      
  def _set_blacklist_time(self, v, load=False):
    """
    Setter method for blacklist_time, mapped from YANG variable /access_points/access_point/ssids/ssid/dot1x_timers/state/blacklist_time (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_blacklist_time is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_blacklist_time() directly.

    YANG Description: Length of time, in seconds, a Station will be
blacklisted as a result of max-auth-failures.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="blacklist-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """blacklist_time must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="blacklist-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)""",
        })

    self.__blacklist_time = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_blacklist_time(self):
    self.__blacklist_time = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="blacklist-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)

  max_auth_failures = __builtin__.property(_get_max_auth_failures)
  blacklist_time = __builtin__.property(_get_blacklist_time)


  _pyangbind_elements = OrderedDict([('max_auth_failures', max_auth_failures), ('blacklist_time', blacklist_time), ])


class yc_dot1x_timers_openconfig_access_points__access_points_access_point_ssids_ssid_dot1x_timers(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/ssids/ssid/dot1x-timers. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Top-level container for dot1x configuration
and operational state data.
  """
  __slots__ = ('_path_helper', '_extmethods', '__config','__state',)

  _yang_name = 'dot1x-timers'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_ssids_ssid_dot1x_timers_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_ssids_ssid_dot1x_timers_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'ssids', 'ssid', 'dot1x-timers']

  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/ssids/ssid/dot1x_timers/config (container)

    YANG Description: Container for dot1x configuration elements.
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/ssids/ssid/dot1x_timers/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Container for dot1x configuration elements.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_access_points__access_points_access_point_ssids_ssid_dot1x_timers_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_ssids_ssid_dot1x_timers_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_ssids_ssid_dot1x_timers_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/ssids/ssid/dot1x_timers/state (container)

    YANG Description: Container for dot1x state elements.
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/ssids/ssid/dot1x_timers/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: Container for dot1x state elements.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_ssids_ssid_dot1x_timers_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_ssids_ssid_dot1x_timers_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_ssids_ssid_dot1x_timers_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)


  _pyangbind_elements = OrderedDict([('config', config), ('state', state), ])


class yc_config_openconfig_access_points__access_points_access_point_ssids_ssid_band_steering_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/ssids/ssid/band-steering/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Container for band-steering configuration elements.
  """
  __slots__ = ('_path_helper', '_extmethods', '__band_steering','__steering_rssi',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__band_steering = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="band-steering", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)
    self.__steering_rssi = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), is_leaf=True, yang_name="steering-rssi", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='int8', is_config=True)

    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 ['access-points', 'access-point', 'ssids', 'ssid', 'band-steering', 'config']

  def _get_band_steering(self):
    """
    Getter method for band_steering, mapped from YANG variable /access_points/access_point/ssids/ssid/band_steering/config/band_steering (boolean)

    YANG Description: Enable/disable band-steering.
    """
    return self.__band_steering
      
  def _set_band_steering(self, v, load=False):
    """
    Setter method for band_steering, mapped from YANG variable /access_points/access_point/ssids/ssid/band_steering/config/band_steering (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_band_steering is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_band_steering() directly.

    YANG Description: Enable/disable band-steering.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="band-steering", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """band_steering must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="band-steering", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)""",
        })

    self.__band_steering = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_band_steering(self):
    self.__band_steering = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="band-steering", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)


  def _get_steering_rssi(self):
    """
    Getter method for steering_rssi, mapped from YANG variable /access_points/access_point/ssids/ssid/band_steering/config/steering_rssi (int8)

    YANG Description: Minimum RSSI a dual-band Station's Probe Request
must be heard at on a 5GHz radio, in order for
band-steering to withhold 2.4GHz Probe Responses.
    """
    return self.__steering_rssi
      
  def _set_steering_rssi(self, v, load=False):
    """
    Setter method for steering_rssi, mapped from YANG variable /access_points/access_point/ssids/ssid/band_steering/config/steering_rssi (int8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_steering_rssi is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_steering_rssi() directly.

    YANG Description: Minimum RSSI a dual-band Station's Probe Request
must be heard at on a 5GHz radio, in order for
band-steering to withhold 2.4GHz Probe Responses.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), is_leaf=True, yang_name="steering-rssi", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='int8', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """steering_rssi must be of a type compatible with int8""",
          'defined-type': "int8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), is_leaf=True, yang_name="steering-rssi", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='int8', is_config=True)""",
        })

    self.__steering_rssi = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_steering_rssi(self):
    self.__steering_rssi = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), is_leaf=True, yang_name="steering-rssi", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='int8', is_config=True)

  band_steering = __builtin__.property(_get_band_steering, _set_band_steering)
  steering_rssi = __builtin__.property(_get_steering_rssi, _set_steering_rssi)


  _pyangbind_elements = OrderedDict([('band_steering', band_steering), ('steering_rssi', steering_rssi), ])


class yc_state_openconfig_access_points__access_points_access_point_ssids_ssid_band_steering_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/ssids/ssid/band-steering/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Container for band-steering state elements.
  """
  __slots__ = ('_path_helper', '_extmethods', '__band_steering','__steering_rssi',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__band_steering = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="band-steering", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    self.__steering_rssi = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), is_leaf=True, yang_name="steering-rssi", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='int8', 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 ['access-points', 'access-point', 'ssids', 'ssid', 'band-steering', 'state']

  def _get_band_steering(self):
    """
    Getter method for band_steering, mapped from YANG variable /access_points/access_point/ssids/ssid/band_steering/state/band_steering (boolean)

    YANG Description: Enable/disable band-steering.
    """
    return self.__band_steering
      
  def _set_band_steering(self, v, load=False):
    """
    Setter method for band_steering, mapped from YANG variable /access_points/access_point/ssids/ssid/band_steering/state/band_steering (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_band_steering is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_band_steering() directly.

    YANG Description: Enable/disable band-steering.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="band-steering", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """band_steering must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="band-steering", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)""",
        })

    self.__band_steering = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_band_steering(self):
    self.__band_steering = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="band-steering", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)


  def _get_steering_rssi(self):
    """
    Getter method for steering_rssi, mapped from YANG variable /access_points/access_point/ssids/ssid/band_steering/state/steering_rssi (int8)

    YANG Description: Minimum RSSI a dual-band Station's Probe Request
must be heard at on a 5GHz radio, in order for
band-steering to withhold 2.4GHz Probe Responses.
    """
    return self.__steering_rssi
      
  def _set_steering_rssi(self, v, load=False):
    """
    Setter method for steering_rssi, mapped from YANG variable /access_points/access_point/ssids/ssid/band_steering/state/steering_rssi (int8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_steering_rssi is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_steering_rssi() directly.

    YANG Description: Minimum RSSI a dual-band Station's Probe Request
must be heard at on a 5GHz radio, in order for
band-steering to withhold 2.4GHz Probe Responses.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), is_leaf=True, yang_name="steering-rssi", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='int8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """steering_rssi must be of a type compatible with int8""",
          'defined-type': "int8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), is_leaf=True, yang_name="steering-rssi", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='int8', is_config=False)""",
        })

    self.__steering_rssi = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_steering_rssi(self):
    self.__steering_rssi = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), is_leaf=True, yang_name="steering-rssi", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='int8', is_config=False)

  band_steering = __builtin__.property(_get_band_steering)
  steering_rssi = __builtin__.property(_get_steering_rssi)


  _pyangbind_elements = OrderedDict([('band_steering', band_steering), ('steering_rssi', steering_rssi), ])


class yc_band_steering_openconfig_access_points__access_points_access_point_ssids_ssid_band_steering(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/ssids/ssid/band-steering. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Top-level container for band-steering configuration
and operational state data.
  """
  __slots__ = ('_path_helper', '_extmethods', '__config','__state',)

  _yang_name = 'band-steering'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_ssids_ssid_band_steering_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_ssids_ssid_band_steering_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'ssids', 'ssid', 'band-steering']

  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/ssids/ssid/band_steering/config (container)

    YANG Description: Container for band-steering configuration elements.
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/ssids/ssid/band_steering/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Container for band-steering configuration elements.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_access_points__access_points_access_point_ssids_ssid_band_steering_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_ssids_ssid_band_steering_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_ssids_ssid_band_steering_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/ssids/ssid/band_steering/state (container)

    YANG Description: Container for band-steering state elements.
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/ssids/ssid/band_steering/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: Container for band-steering state elements.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_ssids_ssid_band_steering_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_ssids_ssid_band_steering_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_ssids_ssid_band_steering_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)


  _pyangbind_elements = OrderedDict([('config', config), ('state', state), ])


class yc_ssid_openconfig_access_points__access_points_access_point_ssids_ssid(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/ssids/ssid. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: The list of named SSIDs on the APs.
  """
  __slots__ = ('_path_helper', '_extmethods', '__name','__config','__state','__bssids','__wmm','__dot11r','__dot11v','__clients','__dot1x_timers','__band_steering',)

  _yang_name = 'ssid'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_ssids_ssid_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_ssids_ssid_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__bssids = YANGDynClass(base=yc_bssids_openconfig_access_points__access_points_access_point_ssids_ssid_bssids, is_container='container', yang_name="bssids", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__wmm = YANGDynClass(base=yc_wmm_openconfig_access_points__access_points_access_point_ssids_ssid_wmm, is_container='container', yang_name="wmm", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__dot11r = YANGDynClass(base=yc_dot11r_openconfig_access_points__access_points_access_point_ssids_ssid_dot11r, is_container='container', yang_name="dot11r", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__dot11v = YANGDynClass(base=yc_dot11v_openconfig_access_points__access_points_access_point_ssids_ssid_dot11v, is_container='container', yang_name="dot11v", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__clients = YANGDynClass(base=yc_clients_openconfig_access_points__access_points_access_point_ssids_ssid_clients, is_container='container', yang_name="clients", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__dot1x_timers = YANGDynClass(base=yc_dot1x_timers_openconfig_access_points__access_points_access_point_ssids_ssid_dot1x_timers, is_container='container', yang_name="dot1x-timers", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__band_steering = YANGDynClass(base=yc_band_steering_openconfig_access_points__access_points_access_point_ssids_ssid_band_steering, is_container='container', yang_name="band-steering", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'ssids', 'ssid']

  def _get_name(self):
    """
    Getter method for name, mapped from YANG variable /access_points/access_point/ssids/ssid/name (leafref)

    YANG Description: References the configured name of the SSID.
    """
    return self.__name
      
  def _set_name(self, v, load=False):
    """
    Setter method for name, mapped from YANG variable /access_points/access_point/ssids/ssid/name (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_name is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_name() directly.

    YANG Description: References the configured name of the SSID.
    """
    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="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """name must be of a type compatible with leafref""",
          'defined-type': "leafref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)""",
        })

    self.__name = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_name(self):
    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)


  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/ssids/ssid/config (container)

    YANG Description: Configurable items at the global, SSID level
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/ssids/ssid/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Configurable items at the global, SSID level
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_access_points__access_points_access_point_ssids_ssid_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_ssids_ssid_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_ssids_ssid_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/ssids/ssid/state (container)

    YANG Description: Operational state data at the SSID level
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/ssids/ssid/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: Operational state data at the SSID level
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_ssids_ssid_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_ssids_ssid_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_ssids_ssid_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_bssids(self):
    """
    Getter method for bssids, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids (container)

    YANG Description: Top-level container for BSSIDs operational state data.
    """
    return self.__bssids
      
  def _set_bssids(self, v, load=False):
    """
    Setter method for bssids, mapped from YANG variable /access_points/access_point/ssids/ssid/bssids (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_bssids is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_bssids() directly.

    YANG Description: Top-level container for BSSIDs operational state data.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_bssids_openconfig_access_points__access_points_access_point_ssids_ssid_bssids, is_container='container', yang_name="bssids", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """bssids must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_bssids_openconfig_access_points__access_points_access_point_ssids_ssid_bssids, is_container='container', yang_name="bssids", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__bssids = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_bssids(self):
    self.__bssids = YANGDynClass(base=yc_bssids_openconfig_access_points__access_points_access_point_ssids_ssid_bssids, is_container='container', yang_name="bssids", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_wmm(self):
    """
    Getter method for wmm, mapped from YANG variable /access_points/access_point/ssids/ssid/wmm (container)

    YANG Description: Top-level container for WMM configuration and
state container.
    """
    return self.__wmm
      
  def _set_wmm(self, v, load=False):
    """
    Setter method for wmm, mapped from YANG variable /access_points/access_point/ssids/ssid/wmm (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_wmm is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_wmm() directly.

    YANG Description: Top-level container for WMM configuration and
state container.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_wmm_openconfig_access_points__access_points_access_point_ssids_ssid_wmm, is_container='container', yang_name="wmm", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """wmm must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_wmm_openconfig_access_points__access_points_access_point_ssids_ssid_wmm, is_container='container', yang_name="wmm", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__wmm = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_wmm(self):
    self.__wmm = YANGDynClass(base=yc_wmm_openconfig_access_points__access_points_access_point_ssids_ssid_wmm, is_container='container', yang_name="wmm", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_dot11r(self):
    """
    Getter method for dot11r, mapped from YANG variable /access_points/access_point/ssids/ssid/dot11r (container)

    YANG Description: Top-level container for 802.11r configuration and
state container.
    """
    return self.__dot11r
      
  def _set_dot11r(self, v, load=False):
    """
    Setter method for dot11r, mapped from YANG variable /access_points/access_point/ssids/ssid/dot11r (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dot11r is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dot11r() directly.

    YANG Description: Top-level container for 802.11r configuration and
state container.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_dot11r_openconfig_access_points__access_points_access_point_ssids_ssid_dot11r, is_container='container', yang_name="dot11r", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dot11r must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_dot11r_openconfig_access_points__access_points_access_point_ssids_ssid_dot11r, is_container='container', yang_name="dot11r", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__dot11r = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dot11r(self):
    self.__dot11r = YANGDynClass(base=yc_dot11r_openconfig_access_points__access_points_access_point_ssids_ssid_dot11r, is_container='container', yang_name="dot11r", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_dot11v(self):
    """
    Getter method for dot11v, mapped from YANG variable /access_points/access_point/ssids/ssid/dot11v (container)

    YANG Description: Top-level container for 802.11v configuration and
operational state data.
    """
    return self.__dot11v
      
  def _set_dot11v(self, v, load=False):
    """
    Setter method for dot11v, mapped from YANG variable /access_points/access_point/ssids/ssid/dot11v (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dot11v is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dot11v() directly.

    YANG Description: Top-level container for 802.11v configuration and
operational state data.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_dot11v_openconfig_access_points__access_points_access_point_ssids_ssid_dot11v, is_container='container', yang_name="dot11v", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dot11v must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_dot11v_openconfig_access_points__access_points_access_point_ssids_ssid_dot11v, is_container='container', yang_name="dot11v", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__dot11v = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dot11v(self):
    self.__dot11v = YANGDynClass(base=yc_dot11v_openconfig_access_points__access_points_access_point_ssids_ssid_dot11v, is_container='container', yang_name="dot11v", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_clients(self):
    """
    Getter method for clients, mapped from YANG variable /access_points/access_point/ssids/ssid/clients (container)

    YANG Description: Top-level container for clients operational state data.
    """
    return self.__clients
      
  def _set_clients(self, v, load=False):
    """
    Setter method for clients, mapped from YANG variable /access_points/access_point/ssids/ssid/clients (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_clients is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_clients() directly.

    YANG Description: Top-level container for clients operational state data.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_clients_openconfig_access_points__access_points_access_point_ssids_ssid_clients, is_container='container', yang_name="clients", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """clients must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_clients_openconfig_access_points__access_points_access_point_ssids_ssid_clients, is_container='container', yang_name="clients", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__clients = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_clients(self):
    self.__clients = YANGDynClass(base=yc_clients_openconfig_access_points__access_points_access_point_ssids_ssid_clients, is_container='container', yang_name="clients", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_dot1x_timers(self):
    """
    Getter method for dot1x_timers, mapped from YANG variable /access_points/access_point/ssids/ssid/dot1x_timers (container)

    YANG Description: Top-level container for dot1x configuration
and operational state data.
    """
    return self.__dot1x_timers
      
  def _set_dot1x_timers(self, v, load=False):
    """
    Setter method for dot1x_timers, mapped from YANG variable /access_points/access_point/ssids/ssid/dot1x_timers (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dot1x_timers is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dot1x_timers() directly.

    YANG Description: Top-level container for dot1x configuration
and operational state data.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_dot1x_timers_openconfig_access_points__access_points_access_point_ssids_ssid_dot1x_timers, is_container='container', yang_name="dot1x-timers", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dot1x_timers must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_dot1x_timers_openconfig_access_points__access_points_access_point_ssids_ssid_dot1x_timers, is_container='container', yang_name="dot1x-timers", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__dot1x_timers = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dot1x_timers(self):
    self.__dot1x_timers = YANGDynClass(base=yc_dot1x_timers_openconfig_access_points__access_points_access_point_ssids_ssid_dot1x_timers, is_container='container', yang_name="dot1x-timers", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_band_steering(self):
    """
    Getter method for band_steering, mapped from YANG variable /access_points/access_point/ssids/ssid/band_steering (container)

    YANG Description: Top-level container for band-steering configuration
and operational state data.
    """
    return self.__band_steering
      
  def _set_band_steering(self, v, load=False):
    """
    Setter method for band_steering, mapped from YANG variable /access_points/access_point/ssids/ssid/band_steering (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_band_steering is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_band_steering() directly.

    YANG Description: Top-level container for band-steering configuration
and operational state data.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_band_steering_openconfig_access_points__access_points_access_point_ssids_ssid_band_steering, is_container='container', yang_name="band-steering", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """band_steering must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_band_steering_openconfig_access_points__access_points_access_point_ssids_ssid_band_steering, is_container='container', yang_name="band-steering", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__band_steering = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_band_steering(self):
    self.__band_steering = YANGDynClass(base=yc_band_steering_openconfig_access_points__access_points_access_point_ssids_ssid_band_steering, is_container='container', yang_name="band-steering", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

  name = __builtin__.property(_get_name, _set_name)
  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)
  bssids = __builtin__.property(_get_bssids, _set_bssids)
  wmm = __builtin__.property(_get_wmm, _set_wmm)
  dot11r = __builtin__.property(_get_dot11r, _set_dot11r)
  dot11v = __builtin__.property(_get_dot11v, _set_dot11v)
  clients = __builtin__.property(_get_clients, _set_clients)
  dot1x_timers = __builtin__.property(_get_dot1x_timers, _set_dot1x_timers)
  band_steering = __builtin__.property(_get_band_steering, _set_band_steering)


  _pyangbind_elements = OrderedDict([('name', name), ('config', config), ('state', state), ('bssids', bssids), ('wmm', wmm), ('dot11r', dot11r), ('dot11v', dot11v), ('clients', clients), ('dot1x_timers', dot1x_timers), ('band_steering', band_steering), ])


class yc_ssids_openconfig_access_points__access_points_access_point_ssids(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/ssids. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Top level container for SSIDs, including configuration
and state data.
  """
  __slots__ = ('_path_helper', '_extmethods', '__ssid',)

  _yang_name = 'ssids'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__ssid = YANGDynClass(base=YANGListType("name",yc_ssid_openconfig_access_points__access_points_access_point_ssids_ssid, yang_name="ssid", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="ssid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)

    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 ['access-points', 'access-point', 'ssids']

  def _get_ssid(self):
    """
    Getter method for ssid, mapped from YANG variable /access_points/access_point/ssids/ssid (list)

    YANG Description: The list of named SSIDs on the APs.
    """
    return self.__ssid
      
  def _set_ssid(self, v, load=False):
    """
    Setter method for ssid, mapped from YANG variable /access_points/access_point/ssids/ssid (list)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ssid is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ssid() directly.

    YANG Description: The list of named SSIDs on the APs.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGListType("name",yc_ssid_openconfig_access_points__access_points_access_point_ssids_ssid, yang_name="ssid", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="ssid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ssid must be of a type compatible with list""",
          'defined-type': "list",
          'generated-type': """YANGDynClass(base=YANGListType("name",yc_ssid_openconfig_access_points__access_points_access_point_ssids_ssid, yang_name="ssid", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="ssid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)""",
        })

    self.__ssid = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ssid(self):
    self.__ssid = YANGDynClass(base=YANGListType("name",yc_ssid_openconfig_access_points__access_points_access_point_ssids_ssid, yang_name="ssid", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="ssid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)

  ssid = __builtin__.property(_get_ssid, _set_ssid)


  _pyangbind_elements = OrderedDict([('ssid', ssid), ])


class yc_config_openconfig_access_points__access_points_access_point_system_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Global configuration data for the system
  """
  __slots__ = ('_path_helper', '_extmethods', '__hostname','__domain_name','__login_banner','__motd_banner',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__hostname = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(((([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.)*([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.?)|\\.)', 'length': ['1..253']}), is_leaf=True, yang_name="hostname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:domain-name', is_config=True)
    self.__domain_name = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(((([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.)*([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.?)|\\.)', 'length': ['1..253']}), is_leaf=True, yang_name="domain-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:domain-name', is_config=True)
    self.__login_banner = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="login-banner", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=True)
    self.__motd_banner = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="motd-banner", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=True)

    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 ['access-points', 'access-point', 'system', 'config']

  def _get_hostname(self):
    """
    Getter method for hostname, mapped from YANG variable /access_points/access_point/system/config/hostname (oc-inet:domain-name)

    YANG Description: The hostname of the device -- should be a single domain
label, without the domain.
    """
    return self.__hostname
      
  def _set_hostname(self, v, load=False):
    """
    Setter method for hostname, mapped from YANG variable /access_points/access_point/system/config/hostname (oc-inet:domain-name)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_hostname is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_hostname() directly.

    YANG Description: The hostname of the device -- should be a single domain
label, without the domain.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(((([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.)*([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.?)|\\.)', 'length': ['1..253']}), is_leaf=True, yang_name="hostname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:domain-name', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """hostname must be of a type compatible with oc-inet:domain-name""",
          'defined-type': "oc-inet:domain-name",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(((([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.)*([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.?)|\\.)', 'length': ['1..253']}), is_leaf=True, yang_name="hostname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:domain-name', is_config=True)""",
        })

    self.__hostname = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_hostname(self):
    self.__hostname = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(((([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.)*([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.?)|\\.)', 'length': ['1..253']}), is_leaf=True, yang_name="hostname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:domain-name', is_config=True)


  def _get_domain_name(self):
    """
    Getter method for domain_name, mapped from YANG variable /access_points/access_point/system/config/domain_name (oc-inet:domain-name)

    YANG Description: Specifies the domain name used to form fully qualified name
for unqualified hostnames.
    """
    return self.__domain_name
      
  def _set_domain_name(self, v, load=False):
    """
    Setter method for domain_name, mapped from YANG variable /access_points/access_point/system/config/domain_name (oc-inet:domain-name)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_domain_name is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_domain_name() directly.

    YANG Description: Specifies the domain name used to form fully qualified name
for unqualified hostnames.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(((([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.)*([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.?)|\\.)', 'length': ['1..253']}), is_leaf=True, yang_name="domain-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:domain-name', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """domain_name must be of a type compatible with oc-inet:domain-name""",
          'defined-type': "oc-inet:domain-name",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(((([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.)*([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.?)|\\.)', 'length': ['1..253']}), is_leaf=True, yang_name="domain-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:domain-name', is_config=True)""",
        })

    self.__domain_name = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_domain_name(self):
    self.__domain_name = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(((([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.)*([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.?)|\\.)', 'length': ['1..253']}), is_leaf=True, yang_name="domain-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:domain-name', is_config=True)


  def _get_login_banner(self):
    """
    Getter method for login_banner, mapped from YANG variable /access_points/access_point/system/config/login_banner (string)

    YANG Description: The console login message displayed before the login prompt,
i.e., before a user logs into the system.
    """
    return self.__login_banner
      
  def _set_login_banner(self, v, load=False):
    """
    Setter method for login_banner, mapped from YANG variable /access_points/access_point/system/config/login_banner (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_login_banner is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_login_banner() directly.

    YANG Description: The console login message displayed before the login prompt,
i.e., before a user logs into the system.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="login-banner", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """login_banner must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="login-banner", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=True)""",
        })

    self.__login_banner = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_login_banner(self):
    self.__login_banner = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="login-banner", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=True)


  def _get_motd_banner(self):
    """
    Getter method for motd_banner, mapped from YANG variable /access_points/access_point/system/config/motd_banner (string)

    YANG Description: The console message displayed after a user logs into the
system.  They system may append additional standard
information such as the current system date and time, uptime,
last login timestamp, etc.
    """
    return self.__motd_banner
      
  def _set_motd_banner(self, v, load=False):
    """
    Setter method for motd_banner, mapped from YANG variable /access_points/access_point/system/config/motd_banner (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_motd_banner is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_motd_banner() directly.

    YANG Description: The console message displayed after a user logs into the
system.  They system may append additional standard
information such as the current system date and time, uptime,
last login timestamp, etc.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="motd-banner", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """motd_banner must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="motd-banner", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=True)""",
        })

    self.__motd_banner = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_motd_banner(self):
    self.__motd_banner = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="motd-banner", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=True)

  hostname = __builtin__.property(_get_hostname, _set_hostname)
  domain_name = __builtin__.property(_get_domain_name, _set_domain_name)
  login_banner = __builtin__.property(_get_login_banner, _set_login_banner)
  motd_banner = __builtin__.property(_get_motd_banner, _set_motd_banner)


  _pyangbind_elements = OrderedDict([('hostname', hostname), ('domain_name', domain_name), ('login_banner', login_banner), ('motd_banner', motd_banner), ])


class yc_state_openconfig_access_points__access_points_access_point_system_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Global operational state data for the system
  """
  __slots__ = ('_path_helper', '_extmethods', '__hostname','__domain_name','__login_banner','__motd_banner','__current_datetime','__boot_time','__software_version','__last_configuration_timestamp',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__hostname = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(((([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.)*([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.?)|\\.)', 'length': ['1..253']}), is_leaf=True, yang_name="hostname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:domain-name', is_config=False)
    self.__domain_name = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(((([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.)*([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.?)|\\.)', 'length': ['1..253']}), is_leaf=True, yang_name="domain-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:domain-name', is_config=False)
    self.__login_banner = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="login-banner", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)
    self.__motd_banner = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="motd-banner", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)
    self.__current_datetime = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9]{4}\\-(0[1-9]|1[0-2])\\-(0[1-9]|[12][0-9]|3[01])[Tt](0[0-9]|1[0-9]|2[0-3]):(0[0-9]|[1-5][0-9]):(0[0-9]|[1-5][0-9]|60)(\\.[0-9]+)?([Zz]|([+-](0[0-9]|1[0-9]|2[0-3]):(0[0-9]|[1-5][0-9])))'}), is_leaf=True, yang_name="current-datetime", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:date-and-time', is_config=False)
    self.__boot_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="boot-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)
    self.__software_version = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="software-version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)
    self.__last_configuration_timestamp = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-configuration-timestamp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', 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 ['access-points', 'access-point', 'system', 'state']

  def _get_hostname(self):
    """
    Getter method for hostname, mapped from YANG variable /access_points/access_point/system/state/hostname (oc-inet:domain-name)

    YANG Description: The hostname of the device -- should be a single domain
label, without the domain.
    """
    return self.__hostname
      
  def _set_hostname(self, v, load=False):
    """
    Setter method for hostname, mapped from YANG variable /access_points/access_point/system/state/hostname (oc-inet:domain-name)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_hostname is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_hostname() directly.

    YANG Description: The hostname of the device -- should be a single domain
label, without the domain.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(((([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.)*([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.?)|\\.)', 'length': ['1..253']}), is_leaf=True, yang_name="hostname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:domain-name', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """hostname must be of a type compatible with oc-inet:domain-name""",
          'defined-type': "oc-inet:domain-name",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(((([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.)*([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.?)|\\.)', 'length': ['1..253']}), is_leaf=True, yang_name="hostname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:domain-name', is_config=False)""",
        })

    self.__hostname = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_hostname(self):
    self.__hostname = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(((([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.)*([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.?)|\\.)', 'length': ['1..253']}), is_leaf=True, yang_name="hostname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:domain-name', is_config=False)


  def _get_domain_name(self):
    """
    Getter method for domain_name, mapped from YANG variable /access_points/access_point/system/state/domain_name (oc-inet:domain-name)

    YANG Description: Specifies the domain name used to form fully qualified name
for unqualified hostnames.
    """
    return self.__domain_name
      
  def _set_domain_name(self, v, load=False):
    """
    Setter method for domain_name, mapped from YANG variable /access_points/access_point/system/state/domain_name (oc-inet:domain-name)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_domain_name is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_domain_name() directly.

    YANG Description: Specifies the domain name used to form fully qualified name
for unqualified hostnames.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(((([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.)*([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.?)|\\.)', 'length': ['1..253']}), is_leaf=True, yang_name="domain-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:domain-name', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """domain_name must be of a type compatible with oc-inet:domain-name""",
          'defined-type': "oc-inet:domain-name",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(((([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.)*([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.?)|\\.)', 'length': ['1..253']}), is_leaf=True, yang_name="domain-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:domain-name', is_config=False)""",
        })

    self.__domain_name = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_domain_name(self):
    self.__domain_name = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(((([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.)*([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.?)|\\.)', 'length': ['1..253']}), is_leaf=True, yang_name="domain-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:domain-name', is_config=False)


  def _get_login_banner(self):
    """
    Getter method for login_banner, mapped from YANG variable /access_points/access_point/system/state/login_banner (string)

    YANG Description: The console login message displayed before the login prompt,
i.e., before a user logs into the system.
    """
    return self.__login_banner
      
  def _set_login_banner(self, v, load=False):
    """
    Setter method for login_banner, mapped from YANG variable /access_points/access_point/system/state/login_banner (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_login_banner is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_login_banner() directly.

    YANG Description: The console login message displayed before the login prompt,
i.e., before a user logs into the system.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="login-banner", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """login_banner must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="login-banner", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)""",
        })

    self.__login_banner = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_login_banner(self):
    self.__login_banner = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="login-banner", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)


  def _get_motd_banner(self):
    """
    Getter method for motd_banner, mapped from YANG variable /access_points/access_point/system/state/motd_banner (string)

    YANG Description: The console message displayed after a user logs into the
system.  They system may append additional standard
information such as the current system date and time, uptime,
last login timestamp, etc.
    """
    return self.__motd_banner
      
  def _set_motd_banner(self, v, load=False):
    """
    Setter method for motd_banner, mapped from YANG variable /access_points/access_point/system/state/motd_banner (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_motd_banner is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_motd_banner() directly.

    YANG Description: The console message displayed after a user logs into the
system.  They system may append additional standard
information such as the current system date and time, uptime,
last login timestamp, etc.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="motd-banner", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """motd_banner must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="motd-banner", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)""",
        })

    self.__motd_banner = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_motd_banner(self):
    self.__motd_banner = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="motd-banner", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)


  def _get_current_datetime(self):
    """
    Getter method for current_datetime, mapped from YANG variable /access_points/access_point/system/state/current_datetime (oc-yang:date-and-time)

    YANG Description: The current system date and time.
    """
    return self.__current_datetime
      
  def _set_current_datetime(self, v, load=False):
    """
    Setter method for current_datetime, mapped from YANG variable /access_points/access_point/system/state/current_datetime (oc-yang:date-and-time)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_current_datetime is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_current_datetime() directly.

    YANG Description: The current system date and time.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9]{4}\\-(0[1-9]|1[0-2])\\-(0[1-9]|[12][0-9]|3[01])[Tt](0[0-9]|1[0-9]|2[0-3]):(0[0-9]|[1-5][0-9]):(0[0-9]|[1-5][0-9]|60)(\\.[0-9]+)?([Zz]|([+-](0[0-9]|1[0-9]|2[0-3]):(0[0-9]|[1-5][0-9])))'}), is_leaf=True, yang_name="current-datetime", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:date-and-time', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """current_datetime must be of a type compatible with oc-yang:date-and-time""",
          'defined-type': "oc-yang:date-and-time",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9]{4}\\-(0[1-9]|1[0-2])\\-(0[1-9]|[12][0-9]|3[01])[Tt](0[0-9]|1[0-9]|2[0-3]):(0[0-9]|[1-5][0-9]):(0[0-9]|[1-5][0-9]|60)(\\.[0-9]+)?([Zz]|([+-](0[0-9]|1[0-9]|2[0-3]):(0[0-9]|[1-5][0-9])))'}), is_leaf=True, yang_name="current-datetime", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:date-and-time', is_config=False)""",
        })

    self.__current_datetime = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_current_datetime(self):
    self.__current_datetime = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9]{4}\\-(0[1-9]|1[0-2])\\-(0[1-9]|[12][0-9]|3[01])[Tt](0[0-9]|1[0-9]|2[0-3]):(0[0-9]|[1-5][0-9]):(0[0-9]|[1-5][0-9]|60)(\\.[0-9]+)?([Zz]|([+-](0[0-9]|1[0-9]|2[0-3]):(0[0-9]|[1-5][0-9])))'}), is_leaf=True, yang_name="current-datetime", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:date-and-time', is_config=False)


  def _get_boot_time(self):
    """
    Getter method for boot_time, mapped from YANG variable /access_points/access_point/system/state/boot_time (oc-types:timeticks64)

    YANG Description: This timestamp indicates the time that the system was last
restarted.  The value is the timestamp in nanoseconds relative
to the Unix Epoch (Jan 1, 1970 00:00:00 UTC).
    """
    return self.__boot_time
      
  def _set_boot_time(self, v, load=False):
    """
    Setter method for boot_time, mapped from YANG variable /access_points/access_point/system/state/boot_time (oc-types:timeticks64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_boot_time is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_boot_time() directly.

    YANG Description: This timestamp indicates the time that the system was last
restarted.  The value is the timestamp in nanoseconds relative
to the Unix Epoch (Jan 1, 1970 00:00:00 UTC).
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="boot-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """boot_time must be of a type compatible with oc-types:timeticks64""",
          'defined-type': "oc-types:timeticks64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="boot-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)""",
        })

    self.__boot_time = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_boot_time(self):
    self.__boot_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="boot-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)


  def _get_software_version(self):
    """
    Getter method for software_version, mapped from YANG variable /access_points/access_point/system/state/software_version (string)

    YANG Description: Operating system version of the currently active controller
of the device.  It is required that this value matches the
value of the state/software-version leaf in the component
of type OPERATING_SYSTEM.
    """
    return self.__software_version
      
  def _set_software_version(self, v, load=False):
    """
    Setter method for software_version, mapped from YANG variable /access_points/access_point/system/state/software_version (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_software_version is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_software_version() directly.

    YANG Description: Operating system version of the currently active controller
of the device.  It is required that this value matches the
value of the state/software-version leaf in the component
of type OPERATING_SYSTEM.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="software-version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """software_version must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="software-version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)""",
        })

    self.__software_version = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_software_version(self):
    self.__software_version = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="software-version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)


  def _get_last_configuration_timestamp(self):
    """
    Getter method for last_configuration_timestamp, mapped from YANG variable /access_points/access_point/system/state/last_configuration_timestamp (oc-types:timeticks64)

    YANG Description: Indicates the monotonically increasing timestamp at which the
last configuration change was made. This may may be through CLI,
gNMI or some other mechanism. The value is the timestamp in
nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC).
    """
    return self.__last_configuration_timestamp
      
  def _set_last_configuration_timestamp(self, v, load=False):
    """
    Setter method for last_configuration_timestamp, mapped from YANG variable /access_points/access_point/system/state/last_configuration_timestamp (oc-types:timeticks64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_last_configuration_timestamp is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_last_configuration_timestamp() directly.

    YANG Description: Indicates the monotonically increasing timestamp at which the
last configuration change was made. This may may be through CLI,
gNMI or some other mechanism. The value is the timestamp in
nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC).
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-configuration-timestamp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """last_configuration_timestamp must be of a type compatible with oc-types:timeticks64""",
          'defined-type': "oc-types:timeticks64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-configuration-timestamp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)""",
        })

    self.__last_configuration_timestamp = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_last_configuration_timestamp(self):
    self.__last_configuration_timestamp = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-configuration-timestamp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)

  hostname = __builtin__.property(_get_hostname)
  domain_name = __builtin__.property(_get_domain_name)
  login_banner = __builtin__.property(_get_login_banner)
  motd_banner = __builtin__.property(_get_motd_banner)
  current_datetime = __builtin__.property(_get_current_datetime)
  boot_time = __builtin__.property(_get_boot_time)
  software_version = __builtin__.property(_get_software_version)
  last_configuration_timestamp = __builtin__.property(_get_last_configuration_timestamp)


  _pyangbind_elements = OrderedDict([('hostname', hostname), ('domain_name', domain_name), ('login_banner', login_banner), ('motd_banner', motd_banner), ('current_datetime', current_datetime), ('boot_time', boot_time), ('software_version', software_version), ('last_configuration_timestamp', last_configuration_timestamp), ])


class yc_state_openconfig_access_points__access_points_access_point_system_mount_points_mount_point_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/mount-points/mount-point/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: State of system mount point.
  """
  __slots__ = ('_path_helper', '_extmethods', '__name','__storage_component','__size','__available','__utilized',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)
    self.__storage_component = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="storage-component", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=False)
    self.__size = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="size", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint64', is_config=False)
    self.__available = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="available", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint64', is_config=False)
    self.__utilized = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="utilized", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint64', 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 ['access-points', 'access-point', 'system', 'mount-points', 'mount-point', 'state']

  def _get_name(self):
    """
    Getter method for name, mapped from YANG variable /access_points/access_point/system/mount_points/mount_point/state/name (string)

    YANG Description: Mount point name.
    """
    return self.__name
      
  def _set_name(self, v, load=False):
    """
    Setter method for name, mapped from YANG variable /access_points/access_point/system/mount_points/mount_point/state/name (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_name is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_name() directly.

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

    self.__name = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_name(self):
    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)


  def _get_storage_component(self):
    """
    Getter method for storage_component, mapped from YANG variable /access_points/access_point/system/mount_points/mount_point/state/storage_component (leafref)

    YANG Description: In the case that the filesystem that is mounted corresponds to a
physical or logical component within the system, this leaf provides
a reference to the hosting component within the /components
hierarchy.

The reference should be to the most specific component (e.g., if an
entry for /dev/sda1 exists, then this should be referred to,
otherwise a reference to /dev/sda may be provided.
    """
    return self.__storage_component
      
  def _set_storage_component(self, v, load=False):
    """
    Setter method for storage_component, mapped from YANG variable /access_points/access_point/system/mount_points/mount_point/state/storage_component (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_storage_component is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_storage_component() directly.

    YANG Description: In the case that the filesystem that is mounted corresponds to a
physical or logical component within the system, this leaf provides
a reference to the hosting component within the /components
hierarchy.

The reference should be to the most specific component (e.g., if an
entry for /dev/sda1 exists, then this should be referred to,
otherwise a reference to /dev/sda may be provided.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="storage-component", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """storage_component must be of a type compatible with leafref""",
          'defined-type': "leafref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="storage-component", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=False)""",
        })

    self.__storage_component = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_storage_component(self):
    self.__storage_component = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="storage-component", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=False)


  def _get_size(self):
    """
    Getter method for size, mapped from YANG variable /access_points/access_point/system/mount_points/mount_point/state/size (uint64)

    YANG Description: The total size of the initialised filesystem.
    """
    return self.__size
      
  def _set_size(self, v, load=False):
    """
    Setter method for size, mapped from YANG variable /access_points/access_point/system/mount_points/mount_point/state/size (uint64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_size is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_size() directly.

    YANG Description: The total size of the initialised filesystem.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="size", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """size must be of a type compatible with uint64""",
          'defined-type': "uint64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="size", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint64', is_config=False)""",
        })

    self.__size = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_size(self):
    self.__size = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="size", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint64', is_config=False)


  def _get_available(self):
    """
    Getter method for available, mapped from YANG variable /access_points/access_point/system/mount_points/mount_point/state/available (uint64)

    YANG Description: The amount of unused space on the filesystem.
    """
    return self.__available
      
  def _set_available(self, v, load=False):
    """
    Setter method for available, mapped from YANG variable /access_points/access_point/system/mount_points/mount_point/state/available (uint64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_available is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_available() directly.

    YANG Description: The amount of unused space on the filesystem.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="available", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """available must be of a type compatible with uint64""",
          'defined-type': "uint64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="available", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint64', is_config=False)""",
        })

    self.__available = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_available(self):
    self.__available = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="available", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint64', is_config=False)


  def _get_utilized(self):
    """
    Getter method for utilized, mapped from YANG variable /access_points/access_point/system/mount_points/mount_point/state/utilized (uint64)

    YANG Description: The amount of space currently in use on the filesystem.
    """
    return self.__utilized
      
  def _set_utilized(self, v, load=False):
    """
    Setter method for utilized, mapped from YANG variable /access_points/access_point/system/mount_points/mount_point/state/utilized (uint64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_utilized is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_utilized() directly.

    YANG Description: The amount of space currently in use on the filesystem.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="utilized", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """utilized must be of a type compatible with uint64""",
          'defined-type': "uint64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="utilized", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint64', is_config=False)""",
        })

    self.__utilized = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_utilized(self):
    self.__utilized = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="utilized", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint64', is_config=False)

  name = __builtin__.property(_get_name)
  storage_component = __builtin__.property(_get_storage_component)
  size = __builtin__.property(_get_size)
  available = __builtin__.property(_get_available)
  utilized = __builtin__.property(_get_utilized)


  _pyangbind_elements = OrderedDict([('name', name), ('storage_component', storage_component), ('size', size), ('available', available), ('utilized', utilized), ])


class yc_mount_point_openconfig_access_points__access_points_access_point_system_mount_points_mount_point(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/mount-points/mount-point. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: List of mount points in the system.
  """
  __slots__ = ('_path_helper', '_extmethods', '__name','__state',)

  _yang_name = 'mount-point'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=False)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_mount_points_mount_point_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/wifi/access-points', defining_module='openconfig-access-points', 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 ['access-points', 'access-point', 'system', 'mount-points', 'mount-point']

  def _get_name(self):
    """
    Getter method for name, mapped from YANG variable /access_points/access_point/system/mount_points/mount_point/name (leafref)

    YANG Description: Reference to the key for list of mount points.
    """
    return self.__name
      
  def _set_name(self, v, load=False):
    """
    Setter method for name, mapped from YANG variable /access_points/access_point/system/mount_points/mount_point/name (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_name is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_name() directly.

    YANG Description: Reference to the key for list of mount points.
    """
    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="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """name must be of a type compatible with leafref""",
          'defined-type': "leafref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=False)""",
        })

    self.__name = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_name(self):
    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=False)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/system/mount_points/mount_point/state (container)

    YANG Description: State of system mount point.
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/system/mount_points/mount_point/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 of system mount point.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_system_mount_points_mount_point_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/wifi/access-points', defining_module='openconfig-access-points', 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=yc_state_openconfig_access_points__access_points_access_point_system_mount_points_mount_point_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_mount_points_mount_point_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)

  name = __builtin__.property(_get_name)
  state = __builtin__.property(_get_state)


  _pyangbind_elements = OrderedDict([('name', name), ('state', state), ])


class yc_mount_points_openconfig_access_points__access_points_access_point_system_mount_points(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/mount-points. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: When a system has a set of filesystems that are attached to a
directory (i.e., mounted on the system) they are expected to be
present in this list. If the system has the concept of mounting
physical or virtual resources to a mount point within the root
filesystem (/) they should also be included in this list.
  """
  __slots__ = ('_path_helper', '_extmethods', '__mount_point',)

  _yang_name = 'mount-points'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__mount_point = YANGDynClass(base=YANGListType("name",yc_mount_point_openconfig_access_points__access_points_access_point_system_mount_points_mount_point, yang_name="mount-point", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="mount-point", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', 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 ['access-points', 'access-point', 'system', 'mount-points']

  def _get_mount_point(self):
    """
    Getter method for mount_point, mapped from YANG variable /access_points/access_point/system/mount_points/mount_point (list)

    YANG Description: List of mount points in the system.
    """
    return self.__mount_point
      
  def _set_mount_point(self, v, load=False):
    """
    Setter method for mount_point, mapped from YANG variable /access_points/access_point/system/mount_points/mount_point (list)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mount_point is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mount_point() directly.

    YANG Description: List of mount points in the system.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGListType("name",yc_mount_point_openconfig_access_points__access_points_access_point_system_mount_points_mount_point, yang_name="mount-point", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="mount-point", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mount_point must be of a type compatible with list""",
          'defined-type': "list",
          'generated-type': """YANGDynClass(base=YANGListType("name",yc_mount_point_openconfig_access_points__access_points_access_point_system_mount_points_mount_point, yang_name="mount-point", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="mount-point", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=False)""",
        })

    self.__mount_point = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mount_point(self):
    self.__mount_point = YANGDynClass(base=YANGListType("name",yc_mount_point_openconfig_access_points__access_points_access_point_system_mount_points_mount_point, yang_name="mount-point", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="mount-point", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=False)

  mount_point = __builtin__.property(_get_mount_point)


  _pyangbind_elements = OrderedDict([('mount_point', mount_point), ])


class yc_config_openconfig_access_points__access_points_access_point_system_aaa_authentication_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/aaa/authentication/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Configuration data for global authentication services
  """
  __slots__ = ('_path_helper', '_extmethods', '__authentication_method',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__authentication_method = YANGDynClass(unique=True, base=TypedListType(allowed_type=[RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'TACACS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:TACACS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'RADIUS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:RADIUS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'LOCAL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:LOCAL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}},),six.text_type,]), is_leaf=False, yang_name="authentication-method", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='union', is_config=True)

    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 ['access-points', 'access-point', 'system', 'aaa', 'authentication', 'config']

  def _get_authentication_method(self):
    """
    Getter method for authentication_method, mapped from YANG variable /access_points/access_point/system/aaa/authentication/config/authentication_method (union)

    YANG Description: Ordered list of authentication methods for users.  This
can be either a reference to a server group, or a well-
defined designation in the AAA_METHOD_TYPE identity.  If
authentication fails with one method, the next defined
method is tried -- failure of all methods results in the
user being denied access.
    """
    return self.__authentication_method
      
  def _set_authentication_method(self, v, load=False):
    """
    Setter method for authentication_method, mapped from YANG variable /access_points/access_point/system/aaa/authentication/config/authentication_method (union)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_authentication_method is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_authentication_method() directly.

    YANG Description: Ordered list of authentication methods for users.  This
can be either a reference to a server group, or a well-
defined designation in the AAA_METHOD_TYPE identity.  If
authentication fails with one method, the next defined
method is tried -- failure of all methods results in the
user being denied access.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=[RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'TACACS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:TACACS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'RADIUS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:RADIUS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'LOCAL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:LOCAL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}},),six.text_type,]), is_leaf=False, yang_name="authentication-method", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='union', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """authentication_method must be of a type compatible with union""",
          'defined-type': "openconfig-access-points:union",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=[RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'TACACS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:TACACS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'RADIUS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:RADIUS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'LOCAL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:LOCAL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}},),six.text_type,]), is_leaf=False, yang_name="authentication-method", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='union', is_config=True)""",
        })

    self.__authentication_method = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_authentication_method(self):
    self.__authentication_method = YANGDynClass(unique=True, base=TypedListType(allowed_type=[RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'TACACS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:TACACS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'RADIUS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:RADIUS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'LOCAL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:LOCAL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}},),six.text_type,]), is_leaf=False, yang_name="authentication-method", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='union', is_config=True)

  authentication_method = __builtin__.property(_get_authentication_method, _set_authentication_method)


  _pyangbind_elements = OrderedDict([('authentication_method', authentication_method), ])


class yc_state_openconfig_access_points__access_points_access_point_system_aaa_authentication_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/aaa/authentication/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Operational state data for global authentication
services
  """
  __slots__ = ('_path_helper', '_extmethods', '__authentication_method',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__authentication_method = YANGDynClass(unique=True, base=TypedListType(allowed_type=[RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'TACACS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:TACACS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'RADIUS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:RADIUS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'LOCAL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:LOCAL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}},),six.text_type,]), is_leaf=False, yang_name="authentication-method", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='union', 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 ['access-points', 'access-point', 'system', 'aaa', 'authentication', 'state']

  def _get_authentication_method(self):
    """
    Getter method for authentication_method, mapped from YANG variable /access_points/access_point/system/aaa/authentication/state/authentication_method (union)

    YANG Description: Ordered list of authentication methods for users.  This
can be either a reference to a server group, or a well-
defined designation in the AAA_METHOD_TYPE identity.  If
authentication fails with one method, the next defined
method is tried -- failure of all methods results in the
user being denied access.
    """
    return self.__authentication_method
      
  def _set_authentication_method(self, v, load=False):
    """
    Setter method for authentication_method, mapped from YANG variable /access_points/access_point/system/aaa/authentication/state/authentication_method (union)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_authentication_method is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_authentication_method() directly.

    YANG Description: Ordered list of authentication methods for users.  This
can be either a reference to a server group, or a well-
defined designation in the AAA_METHOD_TYPE identity.  If
authentication fails with one method, the next defined
method is tried -- failure of all methods results in the
user being denied access.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=[RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'TACACS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:TACACS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'RADIUS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:RADIUS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'LOCAL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:LOCAL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}},),six.text_type,]), is_leaf=False, yang_name="authentication-method", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='union', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """authentication_method must be of a type compatible with union""",
          'defined-type': "openconfig-access-points:union",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=[RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'TACACS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:TACACS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'RADIUS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:RADIUS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'LOCAL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:LOCAL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}},),six.text_type,]), is_leaf=False, yang_name="authentication-method", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='union', is_config=False)""",
        })

    self.__authentication_method = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_authentication_method(self):
    self.__authentication_method = YANGDynClass(unique=True, base=TypedListType(allowed_type=[RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'TACACS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:TACACS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'RADIUS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:RADIUS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'LOCAL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:LOCAL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}},),six.text_type,]), is_leaf=False, yang_name="authentication-method", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='union', is_config=False)

  authentication_method = __builtin__.property(_get_authentication_method)


  _pyangbind_elements = OrderedDict([('authentication_method', authentication_method), ])


class yc_config_openconfig_access_points__access_points_access_point_system_aaa_authentication_admin_user_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/aaa/authentication/admin-user/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Configuration data for the root user account
  """
  __slots__ = ('_path_helper', '_extmethods', '__admin_password','__admin_password_hashed',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__admin_password = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="admin-password", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=True)
    self.__admin_password_hashed = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="admin-password-hashed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-aaa-types:crypt-password-type', is_config=True)

    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 ['access-points', 'access-point', 'system', 'aaa', 'authentication', 'admin-user', 'config']

  def _get_admin_password(self):
    """
    Getter method for admin_password, mapped from YANG variable /access_points/access_point/system/aaa/authentication/admin_user/config/admin_password (string)

    YANG Description: The admin/root password, supplied as a cleartext string.
The system should hash and only store the password as a
hashed value.
    """
    return self.__admin_password
      
  def _set_admin_password(self, v, load=False):
    """
    Setter method for admin_password, mapped from YANG variable /access_points/access_point/system/aaa/authentication/admin_user/config/admin_password (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_admin_password is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_admin_password() directly.

    YANG Description: The admin/root password, supplied as a cleartext string.
The system should hash and only store the password as a
hashed value.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="admin-password", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """admin_password must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="admin-password", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=True)""",
        })

    self.__admin_password = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_admin_password(self):
    self.__admin_password = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="admin-password", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=True)


  def _get_admin_password_hashed(self):
    """
    Getter method for admin_password_hashed, mapped from YANG variable /access_points/access_point/system/aaa/authentication/admin_user/config/admin_password_hashed (oc-aaa-types:crypt-password-type)

    YANG Description: The admin/root password, supplied as a hashed value
using the notation described in the definition of the
crypt-password-type.
    """
    return self.__admin_password_hashed
      
  def _set_admin_password_hashed(self, v, load=False):
    """
    Setter method for admin_password_hashed, mapped from YANG variable /access_points/access_point/system/aaa/authentication/admin_user/config/admin_password_hashed (oc-aaa-types:crypt-password-type)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_admin_password_hashed is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_admin_password_hashed() directly.

    YANG Description: The admin/root password, supplied as a hashed value
using the notation described in the definition of the
crypt-password-type.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="admin-password-hashed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-aaa-types:crypt-password-type', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """admin_password_hashed must be of a type compatible with oc-aaa-types:crypt-password-type""",
          'defined-type': "oc-aaa-types:crypt-password-type",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="admin-password-hashed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-aaa-types:crypt-password-type', is_config=True)""",
        })

    self.__admin_password_hashed = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_admin_password_hashed(self):
    self.__admin_password_hashed = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="admin-password-hashed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-aaa-types:crypt-password-type', is_config=True)

  admin_password = __builtin__.property(_get_admin_password, _set_admin_password)
  admin_password_hashed = __builtin__.property(_get_admin_password_hashed, _set_admin_password_hashed)


  _pyangbind_elements = OrderedDict([('admin_password', admin_password), ('admin_password_hashed', admin_password_hashed), ])


class yc_state_openconfig_access_points__access_points_access_point_system_aaa_authentication_admin_user_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/aaa/authentication/admin-user/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Operational state data for the root user account
  """
  __slots__ = ('_path_helper', '_extmethods', '__admin_password','__admin_password_hashed','__admin_username',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__admin_password = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="admin-password", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)
    self.__admin_password_hashed = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="admin-password-hashed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-aaa-types:crypt-password-type', is_config=False)
    self.__admin_username = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="admin-username", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', 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 ['access-points', 'access-point', 'system', 'aaa', 'authentication', 'admin-user', 'state']

  def _get_admin_password(self):
    """
    Getter method for admin_password, mapped from YANG variable /access_points/access_point/system/aaa/authentication/admin_user/state/admin_password (string)

    YANG Description: The admin/root password, supplied as a cleartext string.
The system should hash and only store the password as a
hashed value.
    """
    return self.__admin_password
      
  def _set_admin_password(self, v, load=False):
    """
    Setter method for admin_password, mapped from YANG variable /access_points/access_point/system/aaa/authentication/admin_user/state/admin_password (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_admin_password is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_admin_password() directly.

    YANG Description: The admin/root password, supplied as a cleartext string.
The system should hash and only store the password as a
hashed value.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="admin-password", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """admin_password must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="admin-password", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)""",
        })

    self.__admin_password = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_admin_password(self):
    self.__admin_password = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="admin-password", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)


  def _get_admin_password_hashed(self):
    """
    Getter method for admin_password_hashed, mapped from YANG variable /access_points/access_point/system/aaa/authentication/admin_user/state/admin_password_hashed (oc-aaa-types:crypt-password-type)

    YANG Description: The admin/root password, supplied as a hashed value
using the notation described in the definition of the
crypt-password-type.
    """
    return self.__admin_password_hashed
      
  def _set_admin_password_hashed(self, v, load=False):
    """
    Setter method for admin_password_hashed, mapped from YANG variable /access_points/access_point/system/aaa/authentication/admin_user/state/admin_password_hashed (oc-aaa-types:crypt-password-type)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_admin_password_hashed is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_admin_password_hashed() directly.

    YANG Description: The admin/root password, supplied as a hashed value
using the notation described in the definition of the
crypt-password-type.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="admin-password-hashed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-aaa-types:crypt-password-type', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """admin_password_hashed must be of a type compatible with oc-aaa-types:crypt-password-type""",
          'defined-type': "oc-aaa-types:crypt-password-type",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="admin-password-hashed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-aaa-types:crypt-password-type', is_config=False)""",
        })

    self.__admin_password_hashed = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_admin_password_hashed(self):
    self.__admin_password_hashed = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="admin-password-hashed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-aaa-types:crypt-password-type', is_config=False)


  def _get_admin_username(self):
    """
    Getter method for admin_username, mapped from YANG variable /access_points/access_point/system/aaa/authentication/admin_user/state/admin_username (string)

    YANG Description: Name of the administrator user account, e.g., admin, root,
etc.
    """
    return self.__admin_username
      
  def _set_admin_username(self, v, load=False):
    """
    Setter method for admin_username, mapped from YANG variable /access_points/access_point/system/aaa/authentication/admin_user/state/admin_username (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_admin_username is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_admin_username() directly.

    YANG Description: Name of the administrator user account, e.g., admin, root,
etc.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="admin-username", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """admin_username must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="admin-username", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)""",
        })

    self.__admin_username = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_admin_username(self):
    self.__admin_username = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="admin-username", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)

  admin_password = __builtin__.property(_get_admin_password)
  admin_password_hashed = __builtin__.property(_get_admin_password_hashed)
  admin_username = __builtin__.property(_get_admin_username)


  _pyangbind_elements = OrderedDict([('admin_password', admin_password), ('admin_password_hashed', admin_password_hashed), ('admin_username', admin_username), ])


class yc_admin_user_openconfig_access_points__access_points_access_point_system_aaa_authentication_admin_user(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/aaa/authentication/admin-user. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Top-level container for the system root or admin user
configuration and operational state
  """
  __slots__ = ('_path_helper', '_extmethods', '__config','__state',)

  _yang_name = 'admin-user'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_aaa_authentication_admin_user_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_aaa_authentication_admin_user_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'system', 'aaa', 'authentication', 'admin-user']

  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/system/aaa/authentication/admin_user/config (container)

    YANG Description: Configuration data for the root user account
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/system/aaa/authentication/admin_user/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Configuration data for the root user account
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_access_points__access_points_access_point_system_aaa_authentication_admin_user_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_aaa_authentication_admin_user_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_aaa_authentication_admin_user_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/system/aaa/authentication/admin_user/state (container)

    YANG Description: Operational state data for the root user account
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/system/aaa/authentication/admin_user/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: Operational state data for the root user account
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_system_aaa_authentication_admin_user_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_aaa_authentication_admin_user_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_aaa_authentication_admin_user_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)


  _pyangbind_elements = OrderedDict([('config', config), ('state', state), ])


class yc_config_openconfig_access_points__access_points_access_point_system_aaa_authentication_users_user_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/aaa/authentication/users/user/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Configuration data for local users
  """
  __slots__ = ('_path_helper', '_extmethods', '__username','__password','__password_hashed','__ssh_key','__role',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__username = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="username", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=True)
    self.__password = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="password", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=True)
    self.__password_hashed = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="password-hashed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-aaa-types:crypt-password-type', is_config=True)
    self.__ssh_key = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="ssh-key", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=True)
    self.__role = YANGDynClass(base=[six.text_type,RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SYSTEM_ROLE_ADMIN': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:SYSTEM_ROLE_ADMIN': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}},),], is_leaf=True, yang_name="role", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='union', is_config=True)

    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 ['access-points', 'access-point', 'system', 'aaa', 'authentication', 'users', 'user', 'config']

  def _get_username(self):
    """
    Getter method for username, mapped from YANG variable /access_points/access_point/system/aaa/authentication/users/user/config/username (string)

    YANG Description: Assigned username for this user
    """
    return self.__username
      
  def _set_username(self, v, load=False):
    """
    Setter method for username, mapped from YANG variable /access_points/access_point/system/aaa/authentication/users/user/config/username (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_username is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_username() directly.

    YANG Description: Assigned username for this user
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="username", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """username must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="username", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=True)""",
        })

    self.__username = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_username(self):
    self.__username = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="username", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=True)


  def _get_password(self):
    """
    Getter method for password, mapped from YANG variable /access_points/access_point/system/aaa/authentication/users/user/config/password (string)

    YANG Description: The user password, supplied as cleartext.  The system
must hash the value and only store the hashed value.
    """
    return self.__password
      
  def _set_password(self, v, load=False):
    """
    Setter method for password, mapped from YANG variable /access_points/access_point/system/aaa/authentication/users/user/config/password (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_password is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_password() directly.

    YANG Description: The user password, supplied as cleartext.  The system
must hash the value and only store the hashed value.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="password", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """password must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="password", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=True)""",
        })

    self.__password = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_password(self):
    self.__password = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="password", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=True)


  def _get_password_hashed(self):
    """
    Getter method for password_hashed, mapped from YANG variable /access_points/access_point/system/aaa/authentication/users/user/config/password_hashed (oc-aaa-types:crypt-password-type)

    YANG Description: The user password, supplied as a hashed value
using the notation described in the definition of the
crypt-password-type.
    """
    return self.__password_hashed
      
  def _set_password_hashed(self, v, load=False):
    """
    Setter method for password_hashed, mapped from YANG variable /access_points/access_point/system/aaa/authentication/users/user/config/password_hashed (oc-aaa-types:crypt-password-type)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_password_hashed is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_password_hashed() directly.

    YANG Description: The user password, supplied as a hashed value
using the notation described in the definition of the
crypt-password-type.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="password-hashed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-aaa-types:crypt-password-type', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """password_hashed must be of a type compatible with oc-aaa-types:crypt-password-type""",
          'defined-type': "oc-aaa-types:crypt-password-type",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="password-hashed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-aaa-types:crypt-password-type', is_config=True)""",
        })

    self.__password_hashed = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_password_hashed(self):
    self.__password_hashed = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="password-hashed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-aaa-types:crypt-password-type', is_config=True)


  def _get_ssh_key(self):
    """
    Getter method for ssh_key, mapped from YANG variable /access_points/access_point/system/aaa/authentication/users/user/config/ssh_key (string)

    YANG Description: SSH public key for the user (RSA or DSA)
    """
    return self.__ssh_key
      
  def _set_ssh_key(self, v, load=False):
    """
    Setter method for ssh_key, mapped from YANG variable /access_points/access_point/system/aaa/authentication/users/user/config/ssh_key (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ssh_key is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ssh_key() directly.

    YANG Description: SSH public key for the user (RSA or DSA)
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="ssh-key", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ssh_key must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="ssh-key", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=True)""",
        })

    self.__ssh_key = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ssh_key(self):
    self.__ssh_key = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="ssh-key", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=True)


  def _get_role(self):
    """
    Getter method for role, mapped from YANG variable /access_points/access_point/system/aaa/authentication/users/user/config/role (union)

    YANG Description: Role assigned to the user.  The role must be supplied
as a role defined by the SYSTEM_DEFINED_ROLES
identity or a string that matches a user defined role.
    """
    return self.__role
      
  def _set_role(self, v, load=False):
    """
    Setter method for role, mapped from YANG variable /access_points/access_point/system/aaa/authentication/users/user/config/role (union)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_role is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_role() directly.

    YANG Description: Role assigned to the user.  The role must be supplied
as a role defined by the SYSTEM_DEFINED_ROLES
identity or a string that matches a user defined role.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=[six.text_type,RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SYSTEM_ROLE_ADMIN': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:SYSTEM_ROLE_ADMIN': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}},),], is_leaf=True, yang_name="role", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='union', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """role must be of a type compatible with union""",
          'defined-type': "openconfig-access-points:union",
          'generated-type': """YANGDynClass(base=[six.text_type,RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SYSTEM_ROLE_ADMIN': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:SYSTEM_ROLE_ADMIN': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}},),], is_leaf=True, yang_name="role", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='union', is_config=True)""",
        })

    self.__role = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_role(self):
    self.__role = YANGDynClass(base=[six.text_type,RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SYSTEM_ROLE_ADMIN': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:SYSTEM_ROLE_ADMIN': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}},),], is_leaf=True, yang_name="role", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='union', is_config=True)

  username = __builtin__.property(_get_username, _set_username)
  password = __builtin__.property(_get_password, _set_password)
  password_hashed = __builtin__.property(_get_password_hashed, _set_password_hashed)
  ssh_key = __builtin__.property(_get_ssh_key, _set_ssh_key)
  role = __builtin__.property(_get_role, _set_role)


  _pyangbind_elements = OrderedDict([('username', username), ('password', password), ('password_hashed', password_hashed), ('ssh_key', ssh_key), ('role', role), ])


class yc_state_openconfig_access_points__access_points_access_point_system_aaa_authentication_users_user_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/aaa/authentication/users/user/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Operational state data for local users
  """
  __slots__ = ('_path_helper', '_extmethods', '__username','__password','__password_hashed','__ssh_key','__role',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__username = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="username", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)
    self.__password = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="password", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)
    self.__password_hashed = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="password-hashed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-aaa-types:crypt-password-type', is_config=False)
    self.__ssh_key = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="ssh-key", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)
    self.__role = YANGDynClass(base=[six.text_type,RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SYSTEM_ROLE_ADMIN': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:SYSTEM_ROLE_ADMIN': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}},),], is_leaf=True, yang_name="role", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='union', 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 ['access-points', 'access-point', 'system', 'aaa', 'authentication', 'users', 'user', 'state']

  def _get_username(self):
    """
    Getter method for username, mapped from YANG variable /access_points/access_point/system/aaa/authentication/users/user/state/username (string)

    YANG Description: Assigned username for this user
    """
    return self.__username
      
  def _set_username(self, v, load=False):
    """
    Setter method for username, mapped from YANG variable /access_points/access_point/system/aaa/authentication/users/user/state/username (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_username is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_username() directly.

    YANG Description: Assigned username for this user
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="username", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """username must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="username", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)""",
        })

    self.__username = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_username(self):
    self.__username = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="username", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)


  def _get_password(self):
    """
    Getter method for password, mapped from YANG variable /access_points/access_point/system/aaa/authentication/users/user/state/password (string)

    YANG Description: The user password, supplied as cleartext.  The system
must hash the value and only store the hashed value.
    """
    return self.__password
      
  def _set_password(self, v, load=False):
    """
    Setter method for password, mapped from YANG variable /access_points/access_point/system/aaa/authentication/users/user/state/password (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_password is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_password() directly.

    YANG Description: The user password, supplied as cleartext.  The system
must hash the value and only store the hashed value.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="password", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """password must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="password", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)""",
        })

    self.__password = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_password(self):
    self.__password = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="password", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)


  def _get_password_hashed(self):
    """
    Getter method for password_hashed, mapped from YANG variable /access_points/access_point/system/aaa/authentication/users/user/state/password_hashed (oc-aaa-types:crypt-password-type)

    YANG Description: The user password, supplied as a hashed value
using the notation described in the definition of the
crypt-password-type.
    """
    return self.__password_hashed
      
  def _set_password_hashed(self, v, load=False):
    """
    Setter method for password_hashed, mapped from YANG variable /access_points/access_point/system/aaa/authentication/users/user/state/password_hashed (oc-aaa-types:crypt-password-type)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_password_hashed is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_password_hashed() directly.

    YANG Description: The user password, supplied as a hashed value
using the notation described in the definition of the
crypt-password-type.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="password-hashed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-aaa-types:crypt-password-type', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """password_hashed must be of a type compatible with oc-aaa-types:crypt-password-type""",
          'defined-type': "oc-aaa-types:crypt-password-type",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="password-hashed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-aaa-types:crypt-password-type', is_config=False)""",
        })

    self.__password_hashed = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_password_hashed(self):
    self.__password_hashed = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="password-hashed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-aaa-types:crypt-password-type', is_config=False)


  def _get_ssh_key(self):
    """
    Getter method for ssh_key, mapped from YANG variable /access_points/access_point/system/aaa/authentication/users/user/state/ssh_key (string)

    YANG Description: SSH public key for the user (RSA or DSA)
    """
    return self.__ssh_key
      
  def _set_ssh_key(self, v, load=False):
    """
    Setter method for ssh_key, mapped from YANG variable /access_points/access_point/system/aaa/authentication/users/user/state/ssh_key (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ssh_key is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ssh_key() directly.

    YANG Description: SSH public key for the user (RSA or DSA)
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="ssh-key", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ssh_key must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="ssh-key", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)""",
        })

    self.__ssh_key = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ssh_key(self):
    self.__ssh_key = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="ssh-key", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)


  def _get_role(self):
    """
    Getter method for role, mapped from YANG variable /access_points/access_point/system/aaa/authentication/users/user/state/role (union)

    YANG Description: Role assigned to the user.  The role must be supplied
as a role defined by the SYSTEM_DEFINED_ROLES
identity or a string that matches a user defined role.
    """
    return self.__role
      
  def _set_role(self, v, load=False):
    """
    Setter method for role, mapped from YANG variable /access_points/access_point/system/aaa/authentication/users/user/state/role (union)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_role is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_role() directly.

    YANG Description: Role assigned to the user.  The role must be supplied
as a role defined by the SYSTEM_DEFINED_ROLES
identity or a string that matches a user defined role.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=[six.text_type,RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SYSTEM_ROLE_ADMIN': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:SYSTEM_ROLE_ADMIN': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}},),], is_leaf=True, yang_name="role", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='union', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """role must be of a type compatible with union""",
          'defined-type': "openconfig-access-points:union",
          'generated-type': """YANGDynClass(base=[six.text_type,RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SYSTEM_ROLE_ADMIN': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:SYSTEM_ROLE_ADMIN': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}},),], is_leaf=True, yang_name="role", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='union', is_config=False)""",
        })

    self.__role = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_role(self):
    self.__role = YANGDynClass(base=[six.text_type,RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SYSTEM_ROLE_ADMIN': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:SYSTEM_ROLE_ADMIN': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}},),], is_leaf=True, yang_name="role", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='union', is_config=False)

  username = __builtin__.property(_get_username)
  password = __builtin__.property(_get_password)
  password_hashed = __builtin__.property(_get_password_hashed)
  ssh_key = __builtin__.property(_get_ssh_key)
  role = __builtin__.property(_get_role)


  _pyangbind_elements = OrderedDict([('username', username), ('password', password), ('password_hashed', password_hashed), ('ssh_key', ssh_key), ('role', role), ])


class yc_user_openconfig_access_points__access_points_access_point_system_aaa_authentication_users_user(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/aaa/authentication/users/user. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: List of local users on the system
  """
  __slots__ = ('_path_helper', '_extmethods', '__username','__config','__state',)

  _yang_name = 'user'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__username = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="username", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_aaa_authentication_users_user_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_aaa_authentication_users_user_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'system', 'aaa', 'authentication', 'users', 'user']

  def _get_username(self):
    """
    Getter method for username, mapped from YANG variable /access_points/access_point/system/aaa/authentication/users/user/username (leafref)

    YANG Description: References the configured username for the user
    """
    return self.__username
      
  def _set_username(self, v, load=False):
    """
    Setter method for username, mapped from YANG variable /access_points/access_point/system/aaa/authentication/users/user/username (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_username is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_username() directly.

    YANG Description: References the configured username for the user
    """
    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="username", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """username must be of a type compatible with leafref""",
          'defined-type': "leafref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="username", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)""",
        })

    self.__username = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_username(self):
    self.__username = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="username", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)


  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/system/aaa/authentication/users/user/config (container)

    YANG Description: Configuration data for local users
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/system/aaa/authentication/users/user/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Configuration data for local users
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_access_points__access_points_access_point_system_aaa_authentication_users_user_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_aaa_authentication_users_user_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_aaa_authentication_users_user_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/system/aaa/authentication/users/user/state (container)

    YANG Description: Operational state data for local users
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/system/aaa/authentication/users/user/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: Operational state data for local users
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_system_aaa_authentication_users_user_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_aaa_authentication_users_user_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_aaa_authentication_users_user_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

  username = __builtin__.property(_get_username, _set_username)
  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)


  _pyangbind_elements = OrderedDict([('username', username), ('config', config), ('state', state), ])


class yc_users_openconfig_access_points__access_points_access_point_system_aaa_authentication_users(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/aaa/authentication/users. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Enclosing container list of local users
  """
  __slots__ = ('_path_helper', '_extmethods', '__user',)

  _yang_name = 'users'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__user = YANGDynClass(base=YANGListType("username",yc_user_openconfig_access_points__access_points_access_point_system_aaa_authentication_users_user, yang_name="user", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='username', extensions=None), is_container='list', yang_name="user", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)

    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 ['access-points', 'access-point', 'system', 'aaa', 'authentication', 'users']

  def _get_user(self):
    """
    Getter method for user, mapped from YANG variable /access_points/access_point/system/aaa/authentication/users/user (list)

    YANG Description: List of local users on the system
    """
    return self.__user
      
  def _set_user(self, v, load=False):
    """
    Setter method for user, mapped from YANG variable /access_points/access_point/system/aaa/authentication/users/user (list)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_user is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_user() directly.

    YANG Description: List of local users on the system
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGListType("username",yc_user_openconfig_access_points__access_points_access_point_system_aaa_authentication_users_user, yang_name="user", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='username', extensions=None), is_container='list', yang_name="user", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """user must be of a type compatible with list""",
          'defined-type': "list",
          'generated-type': """YANGDynClass(base=YANGListType("username",yc_user_openconfig_access_points__access_points_access_point_system_aaa_authentication_users_user, yang_name="user", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='username', extensions=None), is_container='list', yang_name="user", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)""",
        })

    self.__user = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_user(self):
    self.__user = YANGDynClass(base=YANGListType("username",yc_user_openconfig_access_points__access_points_access_point_system_aaa_authentication_users_user, yang_name="user", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='username', extensions=None), is_container='list', yang_name="user", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)

  user = __builtin__.property(_get_user, _set_user)


  _pyangbind_elements = OrderedDict([('user', user), ])


class yc_authentication_openconfig_access_points__access_points_access_point_system_aaa_authentication(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/aaa/authentication. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Top-level container for global authentication data
  """
  __slots__ = ('_path_helper', '_extmethods', '__config','__state','__admin_user','__users',)

  _yang_name = 'authentication'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_aaa_authentication_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_aaa_authentication_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__admin_user = YANGDynClass(base=yc_admin_user_openconfig_access_points__access_points_access_point_system_aaa_authentication_admin_user, is_container='container', yang_name="admin-user", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__users = YANGDynClass(base=yc_users_openconfig_access_points__access_points_access_point_system_aaa_authentication_users, is_container='container', yang_name="users", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'system', 'aaa', 'authentication']

  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/system/aaa/authentication/config (container)

    YANG Description: Configuration data for global authentication services
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/system/aaa/authentication/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Configuration data for global authentication services
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_access_points__access_points_access_point_system_aaa_authentication_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_aaa_authentication_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_aaa_authentication_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/system/aaa/authentication/state (container)

    YANG Description: Operational state data for global authentication
services
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/system/aaa/authentication/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: Operational state data for global authentication
services
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_system_aaa_authentication_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_aaa_authentication_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_aaa_authentication_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_admin_user(self):
    """
    Getter method for admin_user, mapped from YANG variable /access_points/access_point/system/aaa/authentication/admin_user (container)

    YANG Description: Top-level container for the system root or admin user
configuration and operational state
    """
    return self.__admin_user
      
  def _set_admin_user(self, v, load=False):
    """
    Setter method for admin_user, mapped from YANG variable /access_points/access_point/system/aaa/authentication/admin_user (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_admin_user is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_admin_user() directly.

    YANG Description: Top-level container for the system root or admin user
configuration and operational state
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_admin_user_openconfig_access_points__access_points_access_point_system_aaa_authentication_admin_user, is_container='container', yang_name="admin-user", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """admin_user must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_admin_user_openconfig_access_points__access_points_access_point_system_aaa_authentication_admin_user, is_container='container', yang_name="admin-user", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__admin_user = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_admin_user(self):
    self.__admin_user = YANGDynClass(base=yc_admin_user_openconfig_access_points__access_points_access_point_system_aaa_authentication_admin_user, is_container='container', yang_name="admin-user", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_users(self):
    """
    Getter method for users, mapped from YANG variable /access_points/access_point/system/aaa/authentication/users (container)

    YANG Description: Enclosing container list of local users
    """
    return self.__users
      
  def _set_users(self, v, load=False):
    """
    Setter method for users, mapped from YANG variable /access_points/access_point/system/aaa/authentication/users (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_users is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_users() directly.

    YANG Description: Enclosing container list of local users
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_users_openconfig_access_points__access_points_access_point_system_aaa_authentication_users, is_container='container', yang_name="users", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """users must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_users_openconfig_access_points__access_points_access_point_system_aaa_authentication_users, is_container='container', yang_name="users", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__users = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_users(self):
    self.__users = YANGDynClass(base=yc_users_openconfig_access_points__access_points_access_point_system_aaa_authentication_users, is_container='container', yang_name="users", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)
  admin_user = __builtin__.property(_get_admin_user, _set_admin_user)
  users = __builtin__.property(_get_users, _set_users)


  _pyangbind_elements = OrderedDict([('config', config), ('state', state), ('admin_user', admin_user), ('users', users), ])


class yc_config_openconfig_access_points__access_points_access_point_system_aaa_authorization_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/aaa/authorization/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Configuration data for authorization based on AAA
methods
  """
  __slots__ = ('_path_helper', '_extmethods', '__authorization_method',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__authorization_method = YANGDynClass(unique=True, base=TypedListType(allowed_type=[RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'TACACS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:TACACS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'RADIUS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:RADIUS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'LOCAL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:LOCAL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}},),six.text_type,]), is_leaf=False, yang_name="authorization-method", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='union', is_config=True)

    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 ['access-points', 'access-point', 'system', 'aaa', 'authorization', 'config']

  def _get_authorization_method(self):
    """
    Getter method for authorization_method, mapped from YANG variable /access_points/access_point/system/aaa/authorization/config/authorization_method (union)

    YANG Description: Ordered list of methods for authorizing commands.  The first
method that provides a response (positive or negative) should
be used.  The list may contain a well-defined method such
as the set of all TACACS or RADIUS servers, or the name of
a defined AAA server group.  The system must validate
that the named server group exists.
    """
    return self.__authorization_method
      
  def _set_authorization_method(self, v, load=False):
    """
    Setter method for authorization_method, mapped from YANG variable /access_points/access_point/system/aaa/authorization/config/authorization_method (union)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_authorization_method is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_authorization_method() directly.

    YANG Description: Ordered list of methods for authorizing commands.  The first
method that provides a response (positive or negative) should
be used.  The list may contain a well-defined method such
as the set of all TACACS or RADIUS servers, or the name of
a defined AAA server group.  The system must validate
that the named server group exists.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=[RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'TACACS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:TACACS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'RADIUS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:RADIUS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'LOCAL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:LOCAL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}},),six.text_type,]), is_leaf=False, yang_name="authorization-method", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='union', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """authorization_method must be of a type compatible with union""",
          'defined-type': "openconfig-access-points:union",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=[RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'TACACS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:TACACS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'RADIUS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:RADIUS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'LOCAL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:LOCAL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}},),six.text_type,]), is_leaf=False, yang_name="authorization-method", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='union', is_config=True)""",
        })

    self.__authorization_method = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_authorization_method(self):
    self.__authorization_method = YANGDynClass(unique=True, base=TypedListType(allowed_type=[RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'TACACS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:TACACS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'RADIUS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:RADIUS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'LOCAL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:LOCAL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}},),six.text_type,]), is_leaf=False, yang_name="authorization-method", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='union', is_config=True)

  authorization_method = __builtin__.property(_get_authorization_method, _set_authorization_method)


  _pyangbind_elements = OrderedDict([('authorization_method', authorization_method), ])


class yc_state_openconfig_access_points__access_points_access_point_system_aaa_authorization_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/aaa/authorization/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Operational state data for authorization based on AAA
  """
  __slots__ = ('_path_helper', '_extmethods', '__authorization_method',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__authorization_method = YANGDynClass(unique=True, base=TypedListType(allowed_type=[RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'TACACS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:TACACS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'RADIUS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:RADIUS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'LOCAL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:LOCAL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}},),six.text_type,]), is_leaf=False, yang_name="authorization-method", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='union', 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 ['access-points', 'access-point', 'system', 'aaa', 'authorization', 'state']

  def _get_authorization_method(self):
    """
    Getter method for authorization_method, mapped from YANG variable /access_points/access_point/system/aaa/authorization/state/authorization_method (union)

    YANG Description: Ordered list of methods for authorizing commands.  The first
method that provides a response (positive or negative) should
be used.  The list may contain a well-defined method such
as the set of all TACACS or RADIUS servers, or the name of
a defined AAA server group.  The system must validate
that the named server group exists.
    """
    return self.__authorization_method
      
  def _set_authorization_method(self, v, load=False):
    """
    Setter method for authorization_method, mapped from YANG variable /access_points/access_point/system/aaa/authorization/state/authorization_method (union)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_authorization_method is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_authorization_method() directly.

    YANG Description: Ordered list of methods for authorizing commands.  The first
method that provides a response (positive or negative) should
be used.  The list may contain a well-defined method such
as the set of all TACACS or RADIUS servers, or the name of
a defined AAA server group.  The system must validate
that the named server group exists.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=[RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'TACACS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:TACACS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'RADIUS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:RADIUS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'LOCAL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:LOCAL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}},),six.text_type,]), is_leaf=False, yang_name="authorization-method", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='union', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """authorization_method must be of a type compatible with union""",
          'defined-type': "openconfig-access-points:union",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=[RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'TACACS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:TACACS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'RADIUS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:RADIUS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'LOCAL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:LOCAL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}},),six.text_type,]), is_leaf=False, yang_name="authorization-method", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='union', is_config=False)""",
        })

    self.__authorization_method = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_authorization_method(self):
    self.__authorization_method = YANGDynClass(unique=True, base=TypedListType(allowed_type=[RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'TACACS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:TACACS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'RADIUS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:RADIUS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'LOCAL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:LOCAL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}},),six.text_type,]), is_leaf=False, yang_name="authorization-method", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='union', is_config=False)

  authorization_method = __builtin__.property(_get_authorization_method)


  _pyangbind_elements = OrderedDict([('authorization_method', authorization_method), ])


class yc_config_openconfig_access_points__access_points_access_point_system_aaa_authorization_events_event_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/aaa/authorization/events/event/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Configuration data for each authorized event
  """
  __slots__ = ('_path_helper', '_extmethods', '__event_type',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__event_type = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'AAA_AUTHORIZATION_EVENT_COMMAND': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:AAA_AUTHORIZATION_EVENT_COMMAND': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'AAA_AUTHORIZATION_EVENT_CONFIG': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:AAA_AUTHORIZATION_EVENT_CONFIG': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}},), is_leaf=True, yang_name="event-type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=True)

    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 ['access-points', 'access-point', 'system', 'aaa', 'authorization', 'events', 'event', 'config']

  def _get_event_type(self):
    """
    Getter method for event_type, mapped from YANG variable /access_points/access_point/system/aaa/authorization/events/event/config/event_type (identityref)

    YANG Description: The type of event to record at the AAA authorization
server
    """
    return self.__event_type
      
  def _set_event_type(self, v, load=False):
    """
    Setter method for event_type, mapped from YANG variable /access_points/access_point/system/aaa/authorization/events/event/config/event_type (identityref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_event_type is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_event_type() directly.

    YANG Description: The type of event to record at the AAA authorization
server
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'AAA_AUTHORIZATION_EVENT_COMMAND': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:AAA_AUTHORIZATION_EVENT_COMMAND': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'AAA_AUTHORIZATION_EVENT_CONFIG': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:AAA_AUTHORIZATION_EVENT_CONFIG': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}},), is_leaf=True, yang_name="event-type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """event_type must be of a type compatible with identityref""",
          'defined-type': "openconfig-access-points:identityref",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'AAA_AUTHORIZATION_EVENT_COMMAND': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:AAA_AUTHORIZATION_EVENT_COMMAND': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'AAA_AUTHORIZATION_EVENT_CONFIG': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:AAA_AUTHORIZATION_EVENT_CONFIG': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}},), is_leaf=True, yang_name="event-type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=True)""",
        })

    self.__event_type = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_event_type(self):
    self.__event_type = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'AAA_AUTHORIZATION_EVENT_COMMAND': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:AAA_AUTHORIZATION_EVENT_COMMAND': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'AAA_AUTHORIZATION_EVENT_CONFIG': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:AAA_AUTHORIZATION_EVENT_CONFIG': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}},), is_leaf=True, yang_name="event-type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=True)

  event_type = __builtin__.property(_get_event_type, _set_event_type)


  _pyangbind_elements = OrderedDict([('event_type', event_type), ])


class yc_state_openconfig_access_points__access_points_access_point_system_aaa_authorization_events_event_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/aaa/authorization/events/event/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Operational state data for each authorized activity
  """
  __slots__ = ('_path_helper', '_extmethods', '__event_type',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__event_type = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'AAA_AUTHORIZATION_EVENT_COMMAND': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:AAA_AUTHORIZATION_EVENT_COMMAND': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'AAA_AUTHORIZATION_EVENT_CONFIG': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:AAA_AUTHORIZATION_EVENT_CONFIG': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}},), is_leaf=True, yang_name="event-type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', 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 ['access-points', 'access-point', 'system', 'aaa', 'authorization', 'events', 'event', 'state']

  def _get_event_type(self):
    """
    Getter method for event_type, mapped from YANG variable /access_points/access_point/system/aaa/authorization/events/event/state/event_type (identityref)

    YANG Description: The type of event to record at the AAA authorization
server
    """
    return self.__event_type
      
  def _set_event_type(self, v, load=False):
    """
    Setter method for event_type, mapped from YANG variable /access_points/access_point/system/aaa/authorization/events/event/state/event_type (identityref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_event_type is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_event_type() directly.

    YANG Description: The type of event to record at the AAA authorization
server
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'AAA_AUTHORIZATION_EVENT_COMMAND': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:AAA_AUTHORIZATION_EVENT_COMMAND': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'AAA_AUTHORIZATION_EVENT_CONFIG': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:AAA_AUTHORIZATION_EVENT_CONFIG': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}},), is_leaf=True, yang_name="event-type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """event_type must be of a type compatible with identityref""",
          'defined-type': "openconfig-access-points:identityref",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'AAA_AUTHORIZATION_EVENT_COMMAND': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:AAA_AUTHORIZATION_EVENT_COMMAND': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'AAA_AUTHORIZATION_EVENT_CONFIG': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:AAA_AUTHORIZATION_EVENT_CONFIG': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}},), is_leaf=True, yang_name="event-type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)""",
        })

    self.__event_type = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_event_type(self):
    self.__event_type = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'AAA_AUTHORIZATION_EVENT_COMMAND': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:AAA_AUTHORIZATION_EVENT_COMMAND': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'AAA_AUTHORIZATION_EVENT_CONFIG': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:AAA_AUTHORIZATION_EVENT_CONFIG': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}},), is_leaf=True, yang_name="event-type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)

  event_type = __builtin__.property(_get_event_type)


  _pyangbind_elements = OrderedDict([('event_type', event_type), ])


class yc_event_openconfig_access_points__access_points_access_point_system_aaa_authorization_events_event(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/aaa/authorization/events/event. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: List of events subject to AAA authorization
  """
  __slots__ = ('_path_helper', '_extmethods', '__event_type','__config','__state',)

  _yang_name = 'event'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__event_type = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="event-type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_aaa_authorization_events_event_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_aaa_authorization_events_event_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'system', 'aaa', 'authorization', 'events', 'event']

  def _get_event_type(self):
    """
    Getter method for event_type, mapped from YANG variable /access_points/access_point/system/aaa/authorization/events/event/event_type (leafref)

    YANG Description: Reference to the event-type list key
    """
    return self.__event_type
      
  def _set_event_type(self, v, load=False):
    """
    Setter method for event_type, mapped from YANG variable /access_points/access_point/system/aaa/authorization/events/event/event_type (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_event_type is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_event_type() directly.

    YANG Description: Reference to the event-type list key
    """
    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="event-type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """event_type must be of a type compatible with leafref""",
          'defined-type': "leafref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="event-type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)""",
        })

    self.__event_type = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_event_type(self):
    self.__event_type = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="event-type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)


  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/system/aaa/authorization/events/event/config (container)

    YANG Description: Configuration data for each authorized event
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/system/aaa/authorization/events/event/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Configuration data for each authorized event
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_access_points__access_points_access_point_system_aaa_authorization_events_event_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_aaa_authorization_events_event_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_aaa_authorization_events_event_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/system/aaa/authorization/events/event/state (container)

    YANG Description: Operational state data for each authorized activity
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/system/aaa/authorization/events/event/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: Operational state data for each authorized activity
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_system_aaa_authorization_events_event_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_aaa_authorization_events_event_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_aaa_authorization_events_event_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

  event_type = __builtin__.property(_get_event_type, _set_event_type)
  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)


  _pyangbind_elements = OrderedDict([('event_type', event_type), ('config', config), ('state', state), ])


class yc_events_openconfig_access_points__access_points_access_point_system_aaa_authorization_events(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/aaa/authorization/events. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Enclosing container for the set of events subject
to authorization
  """
  __slots__ = ('_path_helper', '_extmethods', '__event',)

  _yang_name = 'events'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__event = YANGDynClass(base=YANGListType("event_type",yc_event_openconfig_access_points__access_points_access_point_system_aaa_authorization_events_event, yang_name="event", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='event-type', extensions=None), is_container='list', yang_name="event", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)

    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 ['access-points', 'access-point', 'system', 'aaa', 'authorization', 'events']

  def _get_event(self):
    """
    Getter method for event, mapped from YANG variable /access_points/access_point/system/aaa/authorization/events/event (list)

    YANG Description: List of events subject to AAA authorization
    """
    return self.__event
      
  def _set_event(self, v, load=False):
    """
    Setter method for event, mapped from YANG variable /access_points/access_point/system/aaa/authorization/events/event (list)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_event is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_event() directly.

    YANG Description: List of events subject to AAA authorization
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGListType("event_type",yc_event_openconfig_access_points__access_points_access_point_system_aaa_authorization_events_event, yang_name="event", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='event-type', extensions=None), is_container='list', yang_name="event", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """event must be of a type compatible with list""",
          'defined-type': "list",
          'generated-type': """YANGDynClass(base=YANGListType("event_type",yc_event_openconfig_access_points__access_points_access_point_system_aaa_authorization_events_event, yang_name="event", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='event-type', extensions=None), is_container='list', yang_name="event", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)""",
        })

    self.__event = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_event(self):
    self.__event = YANGDynClass(base=YANGListType("event_type",yc_event_openconfig_access_points__access_points_access_point_system_aaa_authorization_events_event, yang_name="event", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='event-type', extensions=None), is_container='list', yang_name="event", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)

  event = __builtin__.property(_get_event, _set_event)


  _pyangbind_elements = OrderedDict([('event', event), ])


class yc_authorization_openconfig_access_points__access_points_access_point_system_aaa_authorization(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/aaa/authorization. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Top-level container for AAA authorization configuration
and operational state data
  """
  __slots__ = ('_path_helper', '_extmethods', '__config','__state','__events',)

  _yang_name = 'authorization'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_aaa_authorization_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_aaa_authorization_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__events = YANGDynClass(base=yc_events_openconfig_access_points__access_points_access_point_system_aaa_authorization_events, is_container='container', yang_name="events", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'system', 'aaa', 'authorization']

  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/system/aaa/authorization/config (container)

    YANG Description: Configuration data for authorization based on AAA
methods
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/system/aaa/authorization/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Configuration data for authorization based on AAA
methods
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_access_points__access_points_access_point_system_aaa_authorization_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_aaa_authorization_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_aaa_authorization_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/system/aaa/authorization/state (container)

    YANG Description: Operational state data for authorization based on AAA
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/system/aaa/authorization/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: Operational state data for authorization based on AAA
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_system_aaa_authorization_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_aaa_authorization_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_aaa_authorization_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_events(self):
    """
    Getter method for events, mapped from YANG variable /access_points/access_point/system/aaa/authorization/events (container)

    YANG Description: Enclosing container for the set of events subject
to authorization
    """
    return self.__events
      
  def _set_events(self, v, load=False):
    """
    Setter method for events, mapped from YANG variable /access_points/access_point/system/aaa/authorization/events (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_events is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_events() directly.

    YANG Description: Enclosing container for the set of events subject
to authorization
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_events_openconfig_access_points__access_points_access_point_system_aaa_authorization_events, is_container='container', yang_name="events", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """events must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_events_openconfig_access_points__access_points_access_point_system_aaa_authorization_events, is_container='container', yang_name="events", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__events = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_events(self):
    self.__events = YANGDynClass(base=yc_events_openconfig_access_points__access_points_access_point_system_aaa_authorization_events, is_container='container', yang_name="events", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)
  events = __builtin__.property(_get_events, _set_events)


  _pyangbind_elements = OrderedDict([('config', config), ('state', state), ('events', events), ])


class yc_config_openconfig_access_points__access_points_access_point_system_aaa_accounting_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/aaa/accounting/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Configuration data for user activity accounting.
  """
  __slots__ = ('_path_helper', '_extmethods', '__accounting_method',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__accounting_method = YANGDynClass(unique=True, base=TypedListType(allowed_type=[RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'TACACS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:TACACS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'RADIUS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:RADIUS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'LOCAL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:LOCAL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}},),six.text_type,]), is_leaf=False, yang_name="accounting-method", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='union', is_config=True)

    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 ['access-points', 'access-point', 'system', 'aaa', 'accounting', 'config']

  def _get_accounting_method(self):
    """
    Getter method for accounting_method, mapped from YANG variable /access_points/access_point/system/aaa/accounting/config/accounting_method (union)

    YANG Description: An ordered list of methods used for AAA accounting for this
event type.  The method is defined by the destination for
accounting data, which may be specified as the group of
all TACACS+/RADIUS servers, a defined server group, or
the local system.
    """
    return self.__accounting_method
      
  def _set_accounting_method(self, v, load=False):
    """
    Setter method for accounting_method, mapped from YANG variable /access_points/access_point/system/aaa/accounting/config/accounting_method (union)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_accounting_method is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_accounting_method() directly.

    YANG Description: An ordered list of methods used for AAA accounting for this
event type.  The method is defined by the destination for
accounting data, which may be specified as the group of
all TACACS+/RADIUS servers, a defined server group, or
the local system.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=[RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'TACACS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:TACACS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'RADIUS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:RADIUS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'LOCAL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:LOCAL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}},),six.text_type,]), is_leaf=False, yang_name="accounting-method", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='union', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """accounting_method must be of a type compatible with union""",
          'defined-type': "openconfig-access-points:union",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=[RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'TACACS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:TACACS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'RADIUS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:RADIUS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'LOCAL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:LOCAL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}},),six.text_type,]), is_leaf=False, yang_name="accounting-method", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='union', is_config=True)""",
        })

    self.__accounting_method = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_accounting_method(self):
    self.__accounting_method = YANGDynClass(unique=True, base=TypedListType(allowed_type=[RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'TACACS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:TACACS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'RADIUS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:RADIUS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'LOCAL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:LOCAL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}},),six.text_type,]), is_leaf=False, yang_name="accounting-method", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='union', is_config=True)

  accounting_method = __builtin__.property(_get_accounting_method, _set_accounting_method)


  _pyangbind_elements = OrderedDict([('accounting_method', accounting_method), ])


class yc_state_openconfig_access_points__access_points_access_point_system_aaa_accounting_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/aaa/accounting/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Operational state data for user accounting.
  """
  __slots__ = ('_path_helper', '_extmethods', '__accounting_method',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__accounting_method = YANGDynClass(unique=True, base=TypedListType(allowed_type=[RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'TACACS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:TACACS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'RADIUS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:RADIUS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'LOCAL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:LOCAL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}},),six.text_type,]), is_leaf=False, yang_name="accounting-method", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='union', 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 ['access-points', 'access-point', 'system', 'aaa', 'accounting', 'state']

  def _get_accounting_method(self):
    """
    Getter method for accounting_method, mapped from YANG variable /access_points/access_point/system/aaa/accounting/state/accounting_method (union)

    YANG Description: An ordered list of methods used for AAA accounting for this
event type.  The method is defined by the destination for
accounting data, which may be specified as the group of
all TACACS+/RADIUS servers, a defined server group, or
the local system.
    """
    return self.__accounting_method
      
  def _set_accounting_method(self, v, load=False):
    """
    Setter method for accounting_method, mapped from YANG variable /access_points/access_point/system/aaa/accounting/state/accounting_method (union)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_accounting_method is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_accounting_method() directly.

    YANG Description: An ordered list of methods used for AAA accounting for this
event type.  The method is defined by the destination for
accounting data, which may be specified as the group of
all TACACS+/RADIUS servers, a defined server group, or
the local system.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=[RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'TACACS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:TACACS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'RADIUS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:RADIUS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'LOCAL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:LOCAL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}},),six.text_type,]), is_leaf=False, yang_name="accounting-method", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='union', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """accounting_method must be of a type compatible with union""",
          'defined-type': "openconfig-access-points:union",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=[RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'TACACS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:TACACS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'RADIUS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:RADIUS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'LOCAL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:LOCAL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}},),six.text_type,]), is_leaf=False, yang_name="accounting-method", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='union', is_config=False)""",
        })

    self.__accounting_method = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_accounting_method(self):
    self.__accounting_method = YANGDynClass(unique=True, base=TypedListType(allowed_type=[RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'TACACS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:TACACS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'RADIUS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:RADIUS_ALL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'LOCAL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:LOCAL': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}},),six.text_type,]), is_leaf=False, yang_name="accounting-method", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='union', is_config=False)

  accounting_method = __builtin__.property(_get_accounting_method)


  _pyangbind_elements = OrderedDict([('accounting_method', accounting_method), ])


class yc_config_openconfig_access_points__access_points_access_point_system_aaa_accounting_events_event_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/aaa/accounting/events/event/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Configuration data for accounting events
  """
  __slots__ = ('_path_helper', '_extmethods', '__event_type','__record',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__event_type = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'AAA_ACCOUNTING_EVENT_COMMAND': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:AAA_ACCOUNTING_EVENT_COMMAND': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'AAA_ACCOUNTING_EVENT_LOGIN': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:AAA_ACCOUNTING_EVENT_LOGIN': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}},), is_leaf=True, yang_name="event-type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=True)
    self.__record = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'START_STOP': {}, 'STOP': {}},), is_leaf=True, yang_name="record", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='enumeration', is_config=True)

    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 ['access-points', 'access-point', 'system', 'aaa', 'accounting', 'events', 'event', 'config']

  def _get_event_type(self):
    """
    Getter method for event_type, mapped from YANG variable /access_points/access_point/system/aaa/accounting/events/event/config/event_type (identityref)

    YANG Description: The type of activity to record at the AAA accounting
server
    """
    return self.__event_type
      
  def _set_event_type(self, v, load=False):
    """
    Setter method for event_type, mapped from YANG variable /access_points/access_point/system/aaa/accounting/events/event/config/event_type (identityref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_event_type is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_event_type() directly.

    YANG Description: The type of activity to record at the AAA accounting
server
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'AAA_ACCOUNTING_EVENT_COMMAND': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:AAA_ACCOUNTING_EVENT_COMMAND': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'AAA_ACCOUNTING_EVENT_LOGIN': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:AAA_ACCOUNTING_EVENT_LOGIN': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}},), is_leaf=True, yang_name="event-type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """event_type must be of a type compatible with identityref""",
          'defined-type': "openconfig-access-points:identityref",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'AAA_ACCOUNTING_EVENT_COMMAND': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:AAA_ACCOUNTING_EVENT_COMMAND': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'AAA_ACCOUNTING_EVENT_LOGIN': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:AAA_ACCOUNTING_EVENT_LOGIN': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}},), is_leaf=True, yang_name="event-type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=True)""",
        })

    self.__event_type = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_event_type(self):
    self.__event_type = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'AAA_ACCOUNTING_EVENT_COMMAND': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:AAA_ACCOUNTING_EVENT_COMMAND': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'AAA_ACCOUNTING_EVENT_LOGIN': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:AAA_ACCOUNTING_EVENT_LOGIN': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}},), is_leaf=True, yang_name="event-type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=True)


  def _get_record(self):
    """
    Getter method for record, mapped from YANG variable /access_points/access_point/system/aaa/accounting/events/event/config/record (enumeration)

    YANG Description: Type of record to send to the accounting server for this
activity type
    """
    return self.__record
      
  def _set_record(self, v, load=False):
    """
    Setter method for record, mapped from YANG variable /access_points/access_point/system/aaa/accounting/events/event/config/record (enumeration)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_record is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_record() directly.

    YANG Description: Type of record to send to the accounting server for this
activity type
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'START_STOP': {}, 'STOP': {}},), is_leaf=True, yang_name="record", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='enumeration', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """record must be of a type compatible with enumeration""",
          'defined-type': "openconfig-access-points:enumeration",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'START_STOP': {}, 'STOP': {}},), is_leaf=True, yang_name="record", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='enumeration', is_config=True)""",
        })

    self.__record = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_record(self):
    self.__record = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'START_STOP': {}, 'STOP': {}},), is_leaf=True, yang_name="record", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='enumeration', is_config=True)

  event_type = __builtin__.property(_get_event_type, _set_event_type)
  record = __builtin__.property(_get_record, _set_record)


  _pyangbind_elements = OrderedDict([('event_type', event_type), ('record', record), ])


class yc_state_openconfig_access_points__access_points_access_point_system_aaa_accounting_events_event_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/aaa/accounting/events/event/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Operational state data for accounting events
  """
  __slots__ = ('_path_helper', '_extmethods', '__event_type','__record',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__event_type = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'AAA_ACCOUNTING_EVENT_COMMAND': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:AAA_ACCOUNTING_EVENT_COMMAND': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'AAA_ACCOUNTING_EVENT_LOGIN': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:AAA_ACCOUNTING_EVENT_LOGIN': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}},), is_leaf=True, yang_name="event-type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)
    self.__record = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'START_STOP': {}, 'STOP': {}},), is_leaf=True, yang_name="record", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='enumeration', 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 ['access-points', 'access-point', 'system', 'aaa', 'accounting', 'events', 'event', 'state']

  def _get_event_type(self):
    """
    Getter method for event_type, mapped from YANG variable /access_points/access_point/system/aaa/accounting/events/event/state/event_type (identityref)

    YANG Description: The type of activity to record at the AAA accounting
server
    """
    return self.__event_type
      
  def _set_event_type(self, v, load=False):
    """
    Setter method for event_type, mapped from YANG variable /access_points/access_point/system/aaa/accounting/events/event/state/event_type (identityref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_event_type is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_event_type() directly.

    YANG Description: The type of activity to record at the AAA accounting
server
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'AAA_ACCOUNTING_EVENT_COMMAND': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:AAA_ACCOUNTING_EVENT_COMMAND': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'AAA_ACCOUNTING_EVENT_LOGIN': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:AAA_ACCOUNTING_EVENT_LOGIN': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}},), is_leaf=True, yang_name="event-type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """event_type must be of a type compatible with identityref""",
          'defined-type': "openconfig-access-points:identityref",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'AAA_ACCOUNTING_EVENT_COMMAND': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:AAA_ACCOUNTING_EVENT_COMMAND': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'AAA_ACCOUNTING_EVENT_LOGIN': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:AAA_ACCOUNTING_EVENT_LOGIN': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}},), is_leaf=True, yang_name="event-type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)""",
        })

    self.__event_type = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_event_type(self):
    self.__event_type = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'AAA_ACCOUNTING_EVENT_COMMAND': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:AAA_ACCOUNTING_EVENT_COMMAND': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'AAA_ACCOUNTING_EVENT_LOGIN': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}, 'oc-aaa-types:AAA_ACCOUNTING_EVENT_LOGIN': {'@module': 'openconfig-aaa-types', '@namespace': 'http://openconfig.net/yang/aaa/types'}},), is_leaf=True, yang_name="event-type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)


  def _get_record(self):
    """
    Getter method for record, mapped from YANG variable /access_points/access_point/system/aaa/accounting/events/event/state/record (enumeration)

    YANG Description: Type of record to send to the accounting server for this
activity type
    """
    return self.__record
      
  def _set_record(self, v, load=False):
    """
    Setter method for record, mapped from YANG variable /access_points/access_point/system/aaa/accounting/events/event/state/record (enumeration)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_record is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_record() directly.

    YANG Description: Type of record to send to the accounting server for this
activity type
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'START_STOP': {}, 'STOP': {}},), is_leaf=True, yang_name="record", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='enumeration', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """record must be of a type compatible with enumeration""",
          'defined-type': "openconfig-access-points:enumeration",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'START_STOP': {}, 'STOP': {}},), is_leaf=True, yang_name="record", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='enumeration', is_config=False)""",
        })

    self.__record = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_record(self):
    self.__record = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'START_STOP': {}, 'STOP': {}},), is_leaf=True, yang_name="record", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='enumeration', is_config=False)

  event_type = __builtin__.property(_get_event_type)
  record = __builtin__.property(_get_record)


  _pyangbind_elements = OrderedDict([('event_type', event_type), ('record', record), ])


class yc_event_openconfig_access_points__access_points_access_point_system_aaa_accounting_events_event(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/aaa/accounting/events/event. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: List of events subject to accounting
  """
  __slots__ = ('_path_helper', '_extmethods', '__event_type','__config','__state',)

  _yang_name = 'event'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__event_type = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="event-type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_aaa_accounting_events_event_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_aaa_accounting_events_event_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'system', 'aaa', 'accounting', 'events', 'event']

  def _get_event_type(self):
    """
    Getter method for event_type, mapped from YANG variable /access_points/access_point/system/aaa/accounting/events/event/event_type (leafref)

    YANG Description: Reference to the event-type being logged at the
accounting server
    """
    return self.__event_type
      
  def _set_event_type(self, v, load=False):
    """
    Setter method for event_type, mapped from YANG variable /access_points/access_point/system/aaa/accounting/events/event/event_type (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_event_type is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_event_type() directly.

    YANG Description: Reference to the event-type being logged at the
accounting server
    """
    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="event-type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """event_type must be of a type compatible with leafref""",
          'defined-type': "leafref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="event-type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)""",
        })

    self.__event_type = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_event_type(self):
    self.__event_type = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="event-type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)


  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/system/aaa/accounting/events/event/config (container)

    YANG Description: Configuration data for accounting events
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/system/aaa/accounting/events/event/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Configuration data for accounting events
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_access_points__access_points_access_point_system_aaa_accounting_events_event_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_aaa_accounting_events_event_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_aaa_accounting_events_event_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/system/aaa/accounting/events/event/state (container)

    YANG Description: Operational state data for accounting events
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/system/aaa/accounting/events/event/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: Operational state data for accounting events
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_system_aaa_accounting_events_event_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_aaa_accounting_events_event_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_aaa_accounting_events_event_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

  event_type = __builtin__.property(_get_event_type, _set_event_type)
  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)


  _pyangbind_elements = OrderedDict([('event_type', event_type), ('config', config), ('state', state), ])


class yc_events_openconfig_access_points__access_points_access_point_system_aaa_accounting_events(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/aaa/accounting/events. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Enclosing container for defining handling of events
for accounting
  """
  __slots__ = ('_path_helper', '_extmethods', '__event',)

  _yang_name = 'events'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__event = YANGDynClass(base=YANGListType("event_type",yc_event_openconfig_access_points__access_points_access_point_system_aaa_accounting_events_event, yang_name="event", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='event-type', extensions=None), is_container='list', yang_name="event", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)

    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 ['access-points', 'access-point', 'system', 'aaa', 'accounting', 'events']

  def _get_event(self):
    """
    Getter method for event, mapped from YANG variable /access_points/access_point/system/aaa/accounting/events/event (list)

    YANG Description: List of events subject to accounting
    """
    return self.__event
      
  def _set_event(self, v, load=False):
    """
    Setter method for event, mapped from YANG variable /access_points/access_point/system/aaa/accounting/events/event (list)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_event is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_event() directly.

    YANG Description: List of events subject to accounting
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGListType("event_type",yc_event_openconfig_access_points__access_points_access_point_system_aaa_accounting_events_event, yang_name="event", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='event-type', extensions=None), is_container='list', yang_name="event", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """event must be of a type compatible with list""",
          'defined-type': "list",
          'generated-type': """YANGDynClass(base=YANGListType("event_type",yc_event_openconfig_access_points__access_points_access_point_system_aaa_accounting_events_event, yang_name="event", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='event-type', extensions=None), is_container='list', yang_name="event", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)""",
        })

    self.__event = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_event(self):
    self.__event = YANGDynClass(base=YANGListType("event_type",yc_event_openconfig_access_points__access_points_access_point_system_aaa_accounting_events_event, yang_name="event", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='event-type', extensions=None), is_container='list', yang_name="event", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)

  event = __builtin__.property(_get_event, _set_event)


  _pyangbind_elements = OrderedDict([('event', event), ])


class yc_accounting_openconfig_access_points__access_points_access_point_system_aaa_accounting(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/aaa/accounting. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Top-level container for AAA accounting
  """
  __slots__ = ('_path_helper', '_extmethods', '__config','__state','__events',)

  _yang_name = 'accounting'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_aaa_accounting_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_aaa_accounting_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__events = YANGDynClass(base=yc_events_openconfig_access_points__access_points_access_point_system_aaa_accounting_events, is_container='container', yang_name="events", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'system', 'aaa', 'accounting']

  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/system/aaa/accounting/config (container)

    YANG Description: Configuration data for user activity accounting.
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/system/aaa/accounting/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Configuration data for user activity accounting.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_access_points__access_points_access_point_system_aaa_accounting_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_aaa_accounting_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_aaa_accounting_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/system/aaa/accounting/state (container)

    YANG Description: Operational state data for user accounting.
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/system/aaa/accounting/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: Operational state data for user accounting.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_system_aaa_accounting_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_aaa_accounting_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_aaa_accounting_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_events(self):
    """
    Getter method for events, mapped from YANG variable /access_points/access_point/system/aaa/accounting/events (container)

    YANG Description: Enclosing container for defining handling of events
for accounting
    """
    return self.__events
      
  def _set_events(self, v, load=False):
    """
    Setter method for events, mapped from YANG variable /access_points/access_point/system/aaa/accounting/events (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_events is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_events() directly.

    YANG Description: Enclosing container for defining handling of events
for accounting
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_events_openconfig_access_points__access_points_access_point_system_aaa_accounting_events, is_container='container', yang_name="events", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """events must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_events_openconfig_access_points__access_points_access_point_system_aaa_accounting_events, is_container='container', yang_name="events", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__events = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_events(self):
    self.__events = YANGDynClass(base=yc_events_openconfig_access_points__access_points_access_point_system_aaa_accounting_events, is_container='container', yang_name="events", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)
  events = __builtin__.property(_get_events, _set_events)


  _pyangbind_elements = OrderedDict([('config', config), ('state', state), ('events', events), ])


class yc_config_openconfig_access_points__access_points_access_point_system_aaa_server_groups_server_group_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/aaa/server-groups/server-group/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Configuration data for each server group
  """
  __slots__ = ('_path_helper', '_extmethods', '__name','__type',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=True)
    self.__type = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'TACACS': {'@module': 'openconfig-aaa', '@namespace': 'http://openconfig.net/yang/aaa'}, 'oc-aaa:TACACS': {'@module': 'openconfig-aaa', '@namespace': 'http://openconfig.net/yang/aaa'}, 'RADIUS': {'@module': 'openconfig-aaa', '@namespace': 'http://openconfig.net/yang/aaa'}, 'oc-aaa:RADIUS': {'@module': 'openconfig-aaa', '@namespace': 'http://openconfig.net/yang/aaa'}},), is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=True)

    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 ['access-points', 'access-point', 'system', 'aaa', 'server-groups', 'server-group', 'config']

  def _get_name(self):
    """
    Getter method for name, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/config/name (string)

    YANG Description: Name for the server group
    """
    return self.__name
      
  def _set_name(self, v, load=False):
    """
    Setter method for name, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/config/name (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_name is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_name() directly.

    YANG Description: Name for the server group
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """name must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=True)""",
        })

    self.__name = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_name(self):
    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=True)


  def _get_type(self):
    """
    Getter method for type, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/config/type (identityref)

    YANG Description: AAA server type -- all servers in the group must be of this
type
    """
    return self.__type
      
  def _set_type(self, v, load=False):
    """
    Setter method for type, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/config/type (identityref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_type is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_type() directly.

    YANG Description: AAA server type -- all servers in the group must be of this
type
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'TACACS': {'@module': 'openconfig-aaa', '@namespace': 'http://openconfig.net/yang/aaa'}, 'oc-aaa:TACACS': {'@module': 'openconfig-aaa', '@namespace': 'http://openconfig.net/yang/aaa'}, 'RADIUS': {'@module': 'openconfig-aaa', '@namespace': 'http://openconfig.net/yang/aaa'}, 'oc-aaa:RADIUS': {'@module': 'openconfig-aaa', '@namespace': 'http://openconfig.net/yang/aaa'}},), is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """type must be of a type compatible with identityref""",
          'defined-type': "openconfig-access-points:identityref",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'TACACS': {'@module': 'openconfig-aaa', '@namespace': 'http://openconfig.net/yang/aaa'}, 'oc-aaa:TACACS': {'@module': 'openconfig-aaa', '@namespace': 'http://openconfig.net/yang/aaa'}, 'RADIUS': {'@module': 'openconfig-aaa', '@namespace': 'http://openconfig.net/yang/aaa'}, 'oc-aaa:RADIUS': {'@module': 'openconfig-aaa', '@namespace': 'http://openconfig.net/yang/aaa'}},), is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=True)""",
        })

    self.__type = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_type(self):
    self.__type = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'TACACS': {'@module': 'openconfig-aaa', '@namespace': 'http://openconfig.net/yang/aaa'}, 'oc-aaa:TACACS': {'@module': 'openconfig-aaa', '@namespace': 'http://openconfig.net/yang/aaa'}, 'RADIUS': {'@module': 'openconfig-aaa', '@namespace': 'http://openconfig.net/yang/aaa'}, 'oc-aaa:RADIUS': {'@module': 'openconfig-aaa', '@namespace': 'http://openconfig.net/yang/aaa'}},), is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=True)

  name = __builtin__.property(_get_name, _set_name)
  type = __builtin__.property(_get_type, _set_type)


  _pyangbind_elements = OrderedDict([('name', name), ('type', type), ])


class yc_state_openconfig_access_points__access_points_access_point_system_aaa_server_groups_server_group_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/aaa/server-groups/server-group/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Operational state data for each server group
  """
  __slots__ = ('_path_helper', '_extmethods', '__name','__type',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)
    self.__type = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'TACACS': {'@module': 'openconfig-aaa', '@namespace': 'http://openconfig.net/yang/aaa'}, 'oc-aaa:TACACS': {'@module': 'openconfig-aaa', '@namespace': 'http://openconfig.net/yang/aaa'}, 'RADIUS': {'@module': 'openconfig-aaa', '@namespace': 'http://openconfig.net/yang/aaa'}, 'oc-aaa:RADIUS': {'@module': 'openconfig-aaa', '@namespace': 'http://openconfig.net/yang/aaa'}},), is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', 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 ['access-points', 'access-point', 'system', 'aaa', 'server-groups', 'server-group', 'state']

  def _get_name(self):
    """
    Getter method for name, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/state/name (string)

    YANG Description: Name for the server group
    """
    return self.__name
      
  def _set_name(self, v, load=False):
    """
    Setter method for name, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/state/name (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_name is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_name() directly.

    YANG Description: Name for the server group
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """name must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)""",
        })

    self.__name = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_name(self):
    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)


  def _get_type(self):
    """
    Getter method for type, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/state/type (identityref)

    YANG Description: AAA server type -- all servers in the group must be of this
type
    """
    return self.__type
      
  def _set_type(self, v, load=False):
    """
    Setter method for type, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/state/type (identityref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_type is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_type() directly.

    YANG Description: AAA server type -- all servers in the group must be of this
type
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'TACACS': {'@module': 'openconfig-aaa', '@namespace': 'http://openconfig.net/yang/aaa'}, 'oc-aaa:TACACS': {'@module': 'openconfig-aaa', '@namespace': 'http://openconfig.net/yang/aaa'}, 'RADIUS': {'@module': 'openconfig-aaa', '@namespace': 'http://openconfig.net/yang/aaa'}, 'oc-aaa:RADIUS': {'@module': 'openconfig-aaa', '@namespace': 'http://openconfig.net/yang/aaa'}},), is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """type must be of a type compatible with identityref""",
          'defined-type': "openconfig-access-points:identityref",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'TACACS': {'@module': 'openconfig-aaa', '@namespace': 'http://openconfig.net/yang/aaa'}, 'oc-aaa:TACACS': {'@module': 'openconfig-aaa', '@namespace': 'http://openconfig.net/yang/aaa'}, 'RADIUS': {'@module': 'openconfig-aaa', '@namespace': 'http://openconfig.net/yang/aaa'}, 'oc-aaa:RADIUS': {'@module': 'openconfig-aaa', '@namespace': 'http://openconfig.net/yang/aaa'}},), is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)""",
        })

    self.__type = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_type(self):
    self.__type = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'TACACS': {'@module': 'openconfig-aaa', '@namespace': 'http://openconfig.net/yang/aaa'}, 'oc-aaa:TACACS': {'@module': 'openconfig-aaa', '@namespace': 'http://openconfig.net/yang/aaa'}, 'RADIUS': {'@module': 'openconfig-aaa', '@namespace': 'http://openconfig.net/yang/aaa'}, 'oc-aaa:RADIUS': {'@module': 'openconfig-aaa', '@namespace': 'http://openconfig.net/yang/aaa'}},), is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)

  name = __builtin__.property(_get_name)
  type = __builtin__.property(_get_type)


  _pyangbind_elements = OrderedDict([('name', name), ('type', type), ])


class yc_config_openconfig_access_points__access_points_access_point_system_aaa_server_groups_server_group_servers_server_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/aaa/server-groups/server-group/servers/server/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Configuration data 
  """
  __slots__ = ('_path_helper', '_extmethods', '__name','__address','__timeout',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=True)
    self.__address = YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),], is_leaf=True, yang_name="address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ip-address', is_config=True)
    self.__timeout = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=True)

    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 ['access-points', 'access-point', 'system', 'aaa', 'server-groups', 'server-group', 'servers', 'server', 'config']

  def _get_name(self):
    """
    Getter method for name, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/config/name (string)

    YANG Description: Name assigned to the server
    """
    return self.__name
      
  def _set_name(self, v, load=False):
    """
    Setter method for name, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/config/name (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_name is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_name() directly.

    YANG Description: Name assigned to the server
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """name must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=True)""",
        })

    self.__name = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_name(self):
    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=True)


  def _get_address(self):
    """
    Getter method for address, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/config/address (oc-inet:ip-address)

    YANG Description: Address of the authentication server
    """
    return self.__address
      
  def _set_address(self, v, load=False):
    """
    Setter method for address, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/config/address (oc-inet:ip-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_address is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_address() directly.

    YANG Description: Address of the authentication server
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),], is_leaf=True, yang_name="address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ip-address', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """address must be of a type compatible with oc-inet:ip-address""",
          'defined-type': "oc-inet:ip-address",
          'generated-type': """YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),], is_leaf=True, yang_name="address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ip-address', is_config=True)""",
        })

    self.__address = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_address(self):
    self.__address = YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),], is_leaf=True, yang_name="address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ip-address', is_config=True)


  def _get_timeout(self):
    """
    Getter method for timeout, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/config/timeout (uint16)

    YANG Description: Set the timeout in seconds on responses from the AAA
server
    """
    return self.__timeout
      
  def _set_timeout(self, v, load=False):
    """
    Setter method for timeout, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/config/timeout (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_timeout is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_timeout() directly.

    YANG Description: Set the timeout in seconds on responses from the AAA
server
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """timeout must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=True)""",
        })

    self.__timeout = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_timeout(self):
    self.__timeout = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=True)

  name = __builtin__.property(_get_name, _set_name)
  address = __builtin__.property(_get_address, _set_address)
  timeout = __builtin__.property(_get_timeout, _set_timeout)


  _pyangbind_elements = OrderedDict([('name', name), ('address', address), ('timeout', timeout), ])


class yc_state_openconfig_access_points__access_points_access_point_system_aaa_server_groups_server_group_servers_server_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/aaa/server-groups/server-group/servers/server/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Operational state data 
  """
  __slots__ = ('_path_helper', '_extmethods', '__name','__address','__timeout','__connection_opens','__connection_closes','__connection_aborts','__connection_failures','__connection_timeouts','__messages_sent','__messages_received','__errors_received',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)
    self.__address = YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),], is_leaf=True, yang_name="address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ip-address', is_config=False)
    self.__timeout = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)
    self.__connection_opens = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="connection-opens", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__connection_closes = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="connection-closes", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__connection_aborts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="connection-aborts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__connection_failures = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="connection-failures", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__connection_timeouts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="connection-timeouts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__messages_sent = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="messages-sent", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__messages_received = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="messages-received", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__errors_received = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="errors-received", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', 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 ['access-points', 'access-point', 'system', 'aaa', 'server-groups', 'server-group', 'servers', 'server', 'state']

  def _get_name(self):
    """
    Getter method for name, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/state/name (string)

    YANG Description: Name assigned to the server
    """
    return self.__name
      
  def _set_name(self, v, load=False):
    """
    Setter method for name, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/state/name (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_name is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_name() directly.

    YANG Description: Name assigned to the server
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """name must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)""",
        })

    self.__name = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_name(self):
    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)


  def _get_address(self):
    """
    Getter method for address, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/state/address (oc-inet:ip-address)

    YANG Description: Address of the authentication server
    """
    return self.__address
      
  def _set_address(self, v, load=False):
    """
    Setter method for address, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/state/address (oc-inet:ip-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_address is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_address() directly.

    YANG Description: Address of the authentication server
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),], is_leaf=True, yang_name="address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ip-address', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """address must be of a type compatible with oc-inet:ip-address""",
          'defined-type': "oc-inet:ip-address",
          'generated-type': """YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),], is_leaf=True, yang_name="address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ip-address', is_config=False)""",
        })

    self.__address = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_address(self):
    self.__address = YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),], is_leaf=True, yang_name="address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ip-address', is_config=False)


  def _get_timeout(self):
    """
    Getter method for timeout, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/state/timeout (uint16)

    YANG Description: Set the timeout in seconds on responses from the AAA
server
    """
    return self.__timeout
      
  def _set_timeout(self, v, load=False):
    """
    Setter method for timeout, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/state/timeout (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_timeout is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_timeout() directly.

    YANG Description: Set the timeout in seconds on responses from the AAA
server
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """timeout must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)""",
        })

    self.__timeout = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_timeout(self):
    self.__timeout = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)


  def _get_connection_opens(self):
    """
    Getter method for connection_opens, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/state/connection_opens (oc-yang:counter64)

    YANG Description: Number of new connection requests sent to the server, e.g.
socket open
    """
    return self.__connection_opens
      
  def _set_connection_opens(self, v, load=False):
    """
    Setter method for connection_opens, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/state/connection_opens (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_connection_opens is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_connection_opens() directly.

    YANG Description: Number of new connection requests sent to the server, e.g.
socket open
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="connection-opens", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """connection_opens must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="connection-opens", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__connection_opens = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_connection_opens(self):
    self.__connection_opens = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="connection-opens", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_connection_closes(self):
    """
    Getter method for connection_closes, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/state/connection_closes (oc-yang:counter64)

    YANG Description: Number of connection close requests sent to the server, e.g.
socket close
    """
    return self.__connection_closes
      
  def _set_connection_closes(self, v, load=False):
    """
    Setter method for connection_closes, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/state/connection_closes (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_connection_closes is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_connection_closes() directly.

    YANG Description: Number of connection close requests sent to the server, e.g.
socket close
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="connection-closes", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """connection_closes must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="connection-closes", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__connection_closes = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_connection_closes(self):
    self.__connection_closes = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="connection-closes", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_connection_aborts(self):
    """
    Getter method for connection_aborts, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/state/connection_aborts (oc-yang:counter64)

    YANG Description: Number of aborted connections to the server.  These do
not include connections that are close gracefully.
    """
    return self.__connection_aborts
      
  def _set_connection_aborts(self, v, load=False):
    """
    Setter method for connection_aborts, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/state/connection_aborts (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_connection_aborts is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_connection_aborts() directly.

    YANG Description: Number of aborted connections to the server.  These do
not include connections that are close gracefully.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="connection-aborts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """connection_aborts must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="connection-aborts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__connection_aborts = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_connection_aborts(self):
    self.__connection_aborts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="connection-aborts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_connection_failures(self):
    """
    Getter method for connection_failures, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/state/connection_failures (oc-yang:counter64)

    YANG Description: Number of connection failures to the server
    """
    return self.__connection_failures
      
  def _set_connection_failures(self, v, load=False):
    """
    Setter method for connection_failures, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/state/connection_failures (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_connection_failures is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_connection_failures() directly.

    YANG Description: Number of connection failures to the server
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="connection-failures", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """connection_failures must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="connection-failures", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__connection_failures = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_connection_failures(self):
    self.__connection_failures = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="connection-failures", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_connection_timeouts(self):
    """
    Getter method for connection_timeouts, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/state/connection_timeouts (oc-yang:counter64)

    YANG Description: Number of connection timeouts to the server
    """
    return self.__connection_timeouts
      
  def _set_connection_timeouts(self, v, load=False):
    """
    Setter method for connection_timeouts, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/state/connection_timeouts (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_connection_timeouts is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_connection_timeouts() directly.

    YANG Description: Number of connection timeouts to the server
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="connection-timeouts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """connection_timeouts must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="connection-timeouts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__connection_timeouts = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_connection_timeouts(self):
    self.__connection_timeouts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="connection-timeouts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_messages_sent(self):
    """
    Getter method for messages_sent, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/state/messages_sent (oc-yang:counter64)

    YANG Description: Number of messages sent to the server
    """
    return self.__messages_sent
      
  def _set_messages_sent(self, v, load=False):
    """
    Setter method for messages_sent, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/state/messages_sent (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_messages_sent is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_messages_sent() directly.

    YANG Description: Number of messages sent to the server
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="messages-sent", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """messages_sent must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="messages-sent", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__messages_sent = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_messages_sent(self):
    self.__messages_sent = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="messages-sent", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_messages_received(self):
    """
    Getter method for messages_received, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/state/messages_received (oc-yang:counter64)

    YANG Description: Number of messages received by the server
    """
    return self.__messages_received
      
  def _set_messages_received(self, v, load=False):
    """
    Setter method for messages_received, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/state/messages_received (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_messages_received is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_messages_received() directly.

    YANG Description: Number of messages received by the server
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="messages-received", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """messages_received must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="messages-received", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__messages_received = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_messages_received(self):
    self.__messages_received = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="messages-received", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_errors_received(self):
    """
    Getter method for errors_received, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/state/errors_received (oc-yang:counter64)

    YANG Description: Number of error messages received from the server
    """
    return self.__errors_received
      
  def _set_errors_received(self, v, load=False):
    """
    Setter method for errors_received, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/state/errors_received (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_errors_received is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_errors_received() directly.

    YANG Description: Number of error messages received from the server
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="errors-received", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """errors_received must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="errors-received", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__errors_received = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_errors_received(self):
    self.__errors_received = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="errors-received", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)

  name = __builtin__.property(_get_name)
  address = __builtin__.property(_get_address)
  timeout = __builtin__.property(_get_timeout)
  connection_opens = __builtin__.property(_get_connection_opens)
  connection_closes = __builtin__.property(_get_connection_closes)
  connection_aborts = __builtin__.property(_get_connection_aborts)
  connection_failures = __builtin__.property(_get_connection_failures)
  connection_timeouts = __builtin__.property(_get_connection_timeouts)
  messages_sent = __builtin__.property(_get_messages_sent)
  messages_received = __builtin__.property(_get_messages_received)
  errors_received = __builtin__.property(_get_errors_received)


  _pyangbind_elements = OrderedDict([('name', name), ('address', address), ('timeout', timeout), ('connection_opens', connection_opens), ('connection_closes', connection_closes), ('connection_aborts', connection_aborts), ('connection_failures', connection_failures), ('connection_timeouts', connection_timeouts), ('messages_sent', messages_sent), ('messages_received', messages_received), ('errors_received', errors_received), ])


class yc_config_openconfig_access_points__access_points_access_point_system_aaa_server_groups_server_group_servers_server_tacacs_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/aaa/server-groups/server-group/servers/server/tacacs/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Configuration data for TACACS+ server
  """
  __slots__ = ('_path_helper', '_extmethods', '__port','__secret_key','__secret_key_hashed','__source_address',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__port = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16)(49), is_leaf=True, yang_name="port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:port-number', is_config=True)
    self.__secret_key = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="secret-key", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:routing-password', is_config=True)
    self.__secret_key_hashed = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="secret-key-hashed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-aaa-types:crypt-password-type', is_config=True)
    self.__source_address = YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),], is_leaf=True, yang_name="source-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ip-address', is_config=True)

    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 ['access-points', 'access-point', 'system', 'aaa', 'server-groups', 'server-group', 'servers', 'server', 'tacacs', 'config']

  def _get_port(self):
    """
    Getter method for port, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/tacacs/config/port (oc-inet:port-number)

    YANG Description: The port number on which to contact the TACACS server
    """
    return self.__port
      
  def _set_port(self, v, load=False):
    """
    Setter method for port, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/tacacs/config/port (oc-inet:port-number)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_port is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_port() directly.

    YANG Description: The port number on which to contact the TACACS server
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16)(49), is_leaf=True, yang_name="port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:port-number', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """port must be of a type compatible with oc-inet:port-number""",
          'defined-type': "oc-inet:port-number",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16)(49), is_leaf=True, yang_name="port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:port-number', is_config=True)""",
        })

    self.__port = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_port(self):
    self.__port = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16)(49), is_leaf=True, yang_name="port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:port-number', is_config=True)


  def _get_secret_key(self):
    """
    Getter method for secret_key, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/tacacs/config/secret_key (oc-types:routing-password)

    YANG Description: The unencrypted shared key used between the authentication
server and the device.
    """
    return self.__secret_key
      
  def _set_secret_key(self, v, load=False):
    """
    Setter method for secret_key, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/tacacs/config/secret_key (oc-types:routing-password)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_secret_key is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_secret_key() directly.

    YANG Description: The unencrypted shared key used between the authentication
server and the device.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="secret-key", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:routing-password', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """secret_key must be of a type compatible with oc-types:routing-password""",
          'defined-type': "oc-types:routing-password",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="secret-key", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:routing-password', is_config=True)""",
        })

    self.__secret_key = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_secret_key(self):
    self.__secret_key = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="secret-key", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:routing-password', is_config=True)


  def _get_secret_key_hashed(self):
    """
    Getter method for secret_key_hashed, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/tacacs/config/secret_key_hashed (oc-aaa-types:crypt-password-type)

    YANG Description: The hashed shared key used between the authentication
server and the device.
    """
    return self.__secret_key_hashed
      
  def _set_secret_key_hashed(self, v, load=False):
    """
    Setter method for secret_key_hashed, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/tacacs/config/secret_key_hashed (oc-aaa-types:crypt-password-type)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_secret_key_hashed is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_secret_key_hashed() directly.

    YANG Description: The hashed shared key used between the authentication
server and the device.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="secret-key-hashed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-aaa-types:crypt-password-type', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """secret_key_hashed must be of a type compatible with oc-aaa-types:crypt-password-type""",
          'defined-type': "oc-aaa-types:crypt-password-type",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="secret-key-hashed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-aaa-types:crypt-password-type', is_config=True)""",
        })

    self.__secret_key_hashed = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_secret_key_hashed(self):
    self.__secret_key_hashed = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="secret-key-hashed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-aaa-types:crypt-password-type', is_config=True)


  def _get_source_address(self):
    """
    Getter method for source_address, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/tacacs/config/source_address (oc-inet:ip-address)

    YANG Description: Source IP address to use in messages to the TACACS server
    """
    return self.__source_address
      
  def _set_source_address(self, v, load=False):
    """
    Setter method for source_address, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/tacacs/config/source_address (oc-inet:ip-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_source_address is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_source_address() directly.

    YANG Description: Source IP address to use in messages to the TACACS server
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),], is_leaf=True, yang_name="source-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ip-address', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """source_address must be of a type compatible with oc-inet:ip-address""",
          'defined-type': "oc-inet:ip-address",
          'generated-type': """YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),], is_leaf=True, yang_name="source-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ip-address', is_config=True)""",
        })

    self.__source_address = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_source_address(self):
    self.__source_address = YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),], is_leaf=True, yang_name="source-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ip-address', is_config=True)

  port = __builtin__.property(_get_port, _set_port)
  secret_key = __builtin__.property(_get_secret_key, _set_secret_key)
  secret_key_hashed = __builtin__.property(_get_secret_key_hashed, _set_secret_key_hashed)
  source_address = __builtin__.property(_get_source_address, _set_source_address)


  _pyangbind_elements = OrderedDict([('port', port), ('secret_key', secret_key), ('secret_key_hashed', secret_key_hashed), ('source_address', source_address), ])


class yc_state_openconfig_access_points__access_points_access_point_system_aaa_server_groups_server_group_servers_server_tacacs_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/aaa/server-groups/server-group/servers/server/tacacs/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Operational state data for TACACS+ server
  """
  __slots__ = ('_path_helper', '_extmethods', '__port','__secret_key','__secret_key_hashed','__source_address',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__port = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16)(49), is_leaf=True, yang_name="port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:port-number', is_config=False)
    self.__secret_key = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="secret-key", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:routing-password', is_config=False)
    self.__secret_key_hashed = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="secret-key-hashed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-aaa-types:crypt-password-type', is_config=False)
    self.__source_address = YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),], is_leaf=True, yang_name="source-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ip-address', 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 ['access-points', 'access-point', 'system', 'aaa', 'server-groups', 'server-group', 'servers', 'server', 'tacacs', 'state']

  def _get_port(self):
    """
    Getter method for port, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/tacacs/state/port (oc-inet:port-number)

    YANG Description: The port number on which to contact the TACACS server
    """
    return self.__port
      
  def _set_port(self, v, load=False):
    """
    Setter method for port, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/tacacs/state/port (oc-inet:port-number)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_port is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_port() directly.

    YANG Description: The port number on which to contact the TACACS server
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16)(49), is_leaf=True, yang_name="port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:port-number', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """port must be of a type compatible with oc-inet:port-number""",
          'defined-type': "oc-inet:port-number",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16)(49), is_leaf=True, yang_name="port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:port-number', is_config=False)""",
        })

    self.__port = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_port(self):
    self.__port = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16)(49), is_leaf=True, yang_name="port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:port-number', is_config=False)


  def _get_secret_key(self):
    """
    Getter method for secret_key, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/tacacs/state/secret_key (oc-types:routing-password)

    YANG Description: The unencrypted shared key used between the authentication
server and the device.
    """
    return self.__secret_key
      
  def _set_secret_key(self, v, load=False):
    """
    Setter method for secret_key, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/tacacs/state/secret_key (oc-types:routing-password)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_secret_key is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_secret_key() directly.

    YANG Description: The unencrypted shared key used between the authentication
server and the device.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="secret-key", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:routing-password', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """secret_key must be of a type compatible with oc-types:routing-password""",
          'defined-type': "oc-types:routing-password",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="secret-key", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:routing-password', is_config=False)""",
        })

    self.__secret_key = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_secret_key(self):
    self.__secret_key = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="secret-key", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:routing-password', is_config=False)


  def _get_secret_key_hashed(self):
    """
    Getter method for secret_key_hashed, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/tacacs/state/secret_key_hashed (oc-aaa-types:crypt-password-type)

    YANG Description: The hashed shared key used between the authentication
server and the device.
    """
    return self.__secret_key_hashed
      
  def _set_secret_key_hashed(self, v, load=False):
    """
    Setter method for secret_key_hashed, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/tacacs/state/secret_key_hashed (oc-aaa-types:crypt-password-type)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_secret_key_hashed is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_secret_key_hashed() directly.

    YANG Description: The hashed shared key used between the authentication
server and the device.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="secret-key-hashed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-aaa-types:crypt-password-type', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """secret_key_hashed must be of a type compatible with oc-aaa-types:crypt-password-type""",
          'defined-type': "oc-aaa-types:crypt-password-type",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="secret-key-hashed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-aaa-types:crypt-password-type', is_config=False)""",
        })

    self.__secret_key_hashed = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_secret_key_hashed(self):
    self.__secret_key_hashed = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="secret-key-hashed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-aaa-types:crypt-password-type', is_config=False)


  def _get_source_address(self):
    """
    Getter method for source_address, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/tacacs/state/source_address (oc-inet:ip-address)

    YANG Description: Source IP address to use in messages to the TACACS server
    """
    return self.__source_address
      
  def _set_source_address(self, v, load=False):
    """
    Setter method for source_address, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/tacacs/state/source_address (oc-inet:ip-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_source_address is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_source_address() directly.

    YANG Description: Source IP address to use in messages to the TACACS server
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),], is_leaf=True, yang_name="source-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ip-address', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """source_address must be of a type compatible with oc-inet:ip-address""",
          'defined-type': "oc-inet:ip-address",
          'generated-type': """YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),], is_leaf=True, yang_name="source-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ip-address', is_config=False)""",
        })

    self.__source_address = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_source_address(self):
    self.__source_address = YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),], is_leaf=True, yang_name="source-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ip-address', is_config=False)

  port = __builtin__.property(_get_port)
  secret_key = __builtin__.property(_get_secret_key)
  secret_key_hashed = __builtin__.property(_get_secret_key_hashed)
  source_address = __builtin__.property(_get_source_address)


  _pyangbind_elements = OrderedDict([('port', port), ('secret_key', secret_key), ('secret_key_hashed', secret_key_hashed), ('source_address', source_address), ])


class yc_tacacs_openconfig_access_points__access_points_access_point_system_aaa_server_groups_server_group_servers_server_tacacs(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/aaa/server-groups/server-group/servers/server/tacacs. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Top-level container for TACACS+ server data
  """
  __slots__ = ('_path_helper', '_extmethods', '__config','__state',)

  _yang_name = 'tacacs'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_aaa_server_groups_server_group_servers_server_tacacs_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_aaa_server_groups_server_group_servers_server_tacacs_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'system', 'aaa', 'server-groups', 'server-group', 'servers', 'server', 'tacacs']

  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/tacacs/config (container)

    YANG Description: Configuration data for TACACS+ server
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/tacacs/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Configuration data for TACACS+ server
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_access_points__access_points_access_point_system_aaa_server_groups_server_group_servers_server_tacacs_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_aaa_server_groups_server_group_servers_server_tacacs_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_aaa_server_groups_server_group_servers_server_tacacs_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/tacacs/state (container)

    YANG Description: Operational state data for TACACS+ server
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/tacacs/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: Operational state data for TACACS+ server
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_system_aaa_server_groups_server_group_servers_server_tacacs_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_aaa_server_groups_server_group_servers_server_tacacs_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_aaa_server_groups_server_group_servers_server_tacacs_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)


  _pyangbind_elements = OrderedDict([('config', config), ('state', state), ])


class yc_config_openconfig_access_points__access_points_access_point_system_aaa_server_groups_server_group_servers_server_radius_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/aaa/server-groups/server-group/servers/server/radius/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Configuration data for RADIUS servers
  """
  __slots__ = ('_path_helper', '_extmethods', '__auth_port','__acct_port','__secret_key','__secret_key_hashed','__source_address','__retransmit_attempts',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__auth_port = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16)(1812), is_leaf=True, yang_name="auth-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:port-number', is_config=True)
    self.__acct_port = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16)(1813), is_leaf=True, yang_name="acct-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:port-number', is_config=True)
    self.__secret_key = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="secret-key", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:routing-password', is_config=True)
    self.__secret_key_hashed = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="secret-key-hashed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-aaa-types:crypt-password-type', is_config=True)
    self.__source_address = YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),], is_leaf=True, yang_name="source-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ip-address', is_config=True)
    self.__retransmit_attempts = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="retransmit-attempts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=True)

    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 ['access-points', 'access-point', 'system', 'aaa', 'server-groups', 'server-group', 'servers', 'server', 'radius', 'config']

  def _get_auth_port(self):
    """
    Getter method for auth_port, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/radius/config/auth_port (oc-inet:port-number)

    YANG Description: Port number for authentication requests
    """
    return self.__auth_port
      
  def _set_auth_port(self, v, load=False):
    """
    Setter method for auth_port, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/radius/config/auth_port (oc-inet:port-number)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_auth_port is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_auth_port() directly.

    YANG Description: Port number for authentication requests
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16)(1812), is_leaf=True, yang_name="auth-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:port-number', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """auth_port must be of a type compatible with oc-inet:port-number""",
          'defined-type': "oc-inet:port-number",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16)(1812), is_leaf=True, yang_name="auth-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:port-number', is_config=True)""",
        })

    self.__auth_port = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_auth_port(self):
    self.__auth_port = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16)(1812), is_leaf=True, yang_name="auth-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:port-number', is_config=True)


  def _get_acct_port(self):
    """
    Getter method for acct_port, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/radius/config/acct_port (oc-inet:port-number)

    YANG Description: Port number for accounting requests
    """
    return self.__acct_port
      
  def _set_acct_port(self, v, load=False):
    """
    Setter method for acct_port, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/radius/config/acct_port (oc-inet:port-number)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_acct_port is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_acct_port() directly.

    YANG Description: Port number for accounting requests
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16)(1813), is_leaf=True, yang_name="acct-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:port-number', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """acct_port must be of a type compatible with oc-inet:port-number""",
          'defined-type': "oc-inet:port-number",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16)(1813), is_leaf=True, yang_name="acct-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:port-number', is_config=True)""",
        })

    self.__acct_port = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_acct_port(self):
    self.__acct_port = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16)(1813), is_leaf=True, yang_name="acct-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:port-number', is_config=True)


  def _get_secret_key(self):
    """
    Getter method for secret_key, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/radius/config/secret_key (oc-types:routing-password)

    YANG Description: The unencrypted shared key used between the authentication
server and the device.
    """
    return self.__secret_key
      
  def _set_secret_key(self, v, load=False):
    """
    Setter method for secret_key, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/radius/config/secret_key (oc-types:routing-password)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_secret_key is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_secret_key() directly.

    YANG Description: The unencrypted shared key used between the authentication
server and the device.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="secret-key", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:routing-password', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """secret_key must be of a type compatible with oc-types:routing-password""",
          'defined-type': "oc-types:routing-password",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="secret-key", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:routing-password', is_config=True)""",
        })

    self.__secret_key = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_secret_key(self):
    self.__secret_key = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="secret-key", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:routing-password', is_config=True)


  def _get_secret_key_hashed(self):
    """
    Getter method for secret_key_hashed, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/radius/config/secret_key_hashed (oc-aaa-types:crypt-password-type)

    YANG Description: The hashed shared key used between the authentication
server and the device.
    """
    return self.__secret_key_hashed
      
  def _set_secret_key_hashed(self, v, load=False):
    """
    Setter method for secret_key_hashed, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/radius/config/secret_key_hashed (oc-aaa-types:crypt-password-type)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_secret_key_hashed is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_secret_key_hashed() directly.

    YANG Description: The hashed shared key used between the authentication
server and the device.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="secret-key-hashed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-aaa-types:crypt-password-type', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """secret_key_hashed must be of a type compatible with oc-aaa-types:crypt-password-type""",
          'defined-type': "oc-aaa-types:crypt-password-type",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="secret-key-hashed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-aaa-types:crypt-password-type', is_config=True)""",
        })

    self.__secret_key_hashed = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_secret_key_hashed(self):
    self.__secret_key_hashed = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="secret-key-hashed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-aaa-types:crypt-password-type', is_config=True)


  def _get_source_address(self):
    """
    Getter method for source_address, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/radius/config/source_address (oc-inet:ip-address)

    YANG Description: Source IP address to use in messages to the RADIUS server
    """
    return self.__source_address
      
  def _set_source_address(self, v, load=False):
    """
    Setter method for source_address, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/radius/config/source_address (oc-inet:ip-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_source_address is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_source_address() directly.

    YANG Description: Source IP address to use in messages to the RADIUS server
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),], is_leaf=True, yang_name="source-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ip-address', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """source_address must be of a type compatible with oc-inet:ip-address""",
          'defined-type': "oc-inet:ip-address",
          'generated-type': """YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),], is_leaf=True, yang_name="source-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ip-address', is_config=True)""",
        })

    self.__source_address = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_source_address(self):
    self.__source_address = YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),], is_leaf=True, yang_name="source-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ip-address', is_config=True)


  def _get_retransmit_attempts(self):
    """
    Getter method for retransmit_attempts, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/radius/config/retransmit_attempts (uint8)

    YANG Description: Number of times the system may resend a request to the
RADIUS server when it is unresponsive
    """
    return self.__retransmit_attempts
      
  def _set_retransmit_attempts(self, v, load=False):
    """
    Setter method for retransmit_attempts, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/radius/config/retransmit_attempts (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_retransmit_attempts is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_retransmit_attempts() directly.

    YANG Description: Number of times the system may resend a request to the
RADIUS server when it is unresponsive
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="retransmit-attempts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """retransmit_attempts must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="retransmit-attempts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=True)""",
        })

    self.__retransmit_attempts = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_retransmit_attempts(self):
    self.__retransmit_attempts = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="retransmit-attempts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=True)

  auth_port = __builtin__.property(_get_auth_port, _set_auth_port)
  acct_port = __builtin__.property(_get_acct_port, _set_acct_port)
  secret_key = __builtin__.property(_get_secret_key, _set_secret_key)
  secret_key_hashed = __builtin__.property(_get_secret_key_hashed, _set_secret_key_hashed)
  source_address = __builtin__.property(_get_source_address, _set_source_address)
  retransmit_attempts = __builtin__.property(_get_retransmit_attempts, _set_retransmit_attempts)


  _pyangbind_elements = OrderedDict([('auth_port', auth_port), ('acct_port', acct_port), ('secret_key', secret_key), ('secret_key_hashed', secret_key_hashed), ('source_address', source_address), ('retransmit_attempts', retransmit_attempts), ])


class yc_counters_openconfig_access_points__access_points_access_point_system_aaa_server_groups_server_group_servers_server_radius_state_counters(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/aaa/server-groups/server-group/servers/server/radius/state/counters. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: A collection of RADIUS related state objects.
  """
  __slots__ = ('_path_helper', '_extmethods', '__retried_access_requests','__access_accepts','__access_rejects','__timeout_access_requests',)

  _yang_name = 'counters'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__retried_access_requests = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="retried-access-requests", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__access_accepts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="access-accepts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__access_rejects = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="access-rejects", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__timeout_access_requests = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="timeout-access-requests", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', 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 ['access-points', 'access-point', 'system', 'aaa', 'server-groups', 'server-group', 'servers', 'server', 'radius', 'state', 'counters']

  def _get_retried_access_requests(self):
    """
    Getter method for retried_access_requests, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/radius/state/counters/retried_access_requests (oc-yang:counter64)

    YANG Description: Retransmitted Access-Request messages.
    """
    return self.__retried_access_requests
      
  def _set_retried_access_requests(self, v, load=False):
    """
    Setter method for retried_access_requests, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/radius/state/counters/retried_access_requests (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_retried_access_requests is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_retried_access_requests() directly.

    YANG Description: Retransmitted Access-Request messages.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="retried-access-requests", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """retried_access_requests must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="retried-access-requests", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__retried_access_requests = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_retried_access_requests(self):
    self.__retried_access_requests = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="retried-access-requests", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_access_accepts(self):
    """
    Getter method for access_accepts, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/radius/state/counters/access_accepts (oc-yang:counter64)

    YANG Description: Received Access-Accept messages.
    """
    return self.__access_accepts
      
  def _set_access_accepts(self, v, load=False):
    """
    Setter method for access_accepts, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/radius/state/counters/access_accepts (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_access_accepts is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_access_accepts() directly.

    YANG Description: Received Access-Accept messages.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="access-accepts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """access_accepts must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="access-accepts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__access_accepts = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_access_accepts(self):
    self.__access_accepts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="access-accepts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_access_rejects(self):
    """
    Getter method for access_rejects, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/radius/state/counters/access_rejects (oc-yang:counter64)

    YANG Description: Received Access-Reject messages.
    """
    return self.__access_rejects
      
  def _set_access_rejects(self, v, load=False):
    """
    Setter method for access_rejects, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/radius/state/counters/access_rejects (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_access_rejects is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_access_rejects() directly.

    YANG Description: Received Access-Reject messages.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="access-rejects", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """access_rejects must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="access-rejects", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__access_rejects = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_access_rejects(self):
    self.__access_rejects = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="access-rejects", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_timeout_access_requests(self):
    """
    Getter method for timeout_access_requests, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/radius/state/counters/timeout_access_requests (oc-yang:counter64)

    YANG Description: Access-Request messages that have timed-out,
requiring retransmission.
    """
    return self.__timeout_access_requests
      
  def _set_timeout_access_requests(self, v, load=False):
    """
    Setter method for timeout_access_requests, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/radius/state/counters/timeout_access_requests (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_timeout_access_requests is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_timeout_access_requests() directly.

    YANG Description: Access-Request messages that have timed-out,
requiring retransmission.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="timeout-access-requests", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """timeout_access_requests must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="timeout-access-requests", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__timeout_access_requests = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_timeout_access_requests(self):
    self.__timeout_access_requests = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="timeout-access-requests", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)

  retried_access_requests = __builtin__.property(_get_retried_access_requests)
  access_accepts = __builtin__.property(_get_access_accepts)
  access_rejects = __builtin__.property(_get_access_rejects)
  timeout_access_requests = __builtin__.property(_get_timeout_access_requests)


  _pyangbind_elements = OrderedDict([('retried_access_requests', retried_access_requests), ('access_accepts', access_accepts), ('access_rejects', access_rejects), ('timeout_access_requests', timeout_access_requests), ])


class yc_state_openconfig_access_points__access_points_access_point_system_aaa_server_groups_server_group_servers_server_radius_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/aaa/server-groups/server-group/servers/server/radius/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Operational state data for RADIUS servers
  """
  __slots__ = ('_path_helper', '_extmethods', '__auth_port','__acct_port','__secret_key','__secret_key_hashed','__source_address','__retransmit_attempts','__counters',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__auth_port = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16)(1812), is_leaf=True, yang_name="auth-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:port-number', is_config=False)
    self.__acct_port = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16)(1813), is_leaf=True, yang_name="acct-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:port-number', is_config=False)
    self.__secret_key = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="secret-key", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:routing-password', is_config=False)
    self.__secret_key_hashed = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="secret-key-hashed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-aaa-types:crypt-password-type', is_config=False)
    self.__source_address = YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),], is_leaf=True, yang_name="source-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ip-address', is_config=False)
    self.__retransmit_attempts = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="retransmit-attempts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)
    self.__counters = YANGDynClass(base=yc_counters_openconfig_access_points__access_points_access_point_system_aaa_server_groups_server_group_servers_server_radius_state_counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', 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 ['access-points', 'access-point', 'system', 'aaa', 'server-groups', 'server-group', 'servers', 'server', 'radius', 'state']

  def _get_auth_port(self):
    """
    Getter method for auth_port, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/radius/state/auth_port (oc-inet:port-number)

    YANG Description: Port number for authentication requests
    """
    return self.__auth_port
      
  def _set_auth_port(self, v, load=False):
    """
    Setter method for auth_port, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/radius/state/auth_port (oc-inet:port-number)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_auth_port is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_auth_port() directly.

    YANG Description: Port number for authentication requests
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16)(1812), is_leaf=True, yang_name="auth-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:port-number', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """auth_port must be of a type compatible with oc-inet:port-number""",
          'defined-type': "oc-inet:port-number",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16)(1812), is_leaf=True, yang_name="auth-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:port-number', is_config=False)""",
        })

    self.__auth_port = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_auth_port(self):
    self.__auth_port = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16)(1812), is_leaf=True, yang_name="auth-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:port-number', is_config=False)


  def _get_acct_port(self):
    """
    Getter method for acct_port, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/radius/state/acct_port (oc-inet:port-number)

    YANG Description: Port number for accounting requests
    """
    return self.__acct_port
      
  def _set_acct_port(self, v, load=False):
    """
    Setter method for acct_port, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/radius/state/acct_port (oc-inet:port-number)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_acct_port is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_acct_port() directly.

    YANG Description: Port number for accounting requests
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16)(1813), is_leaf=True, yang_name="acct-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:port-number', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """acct_port must be of a type compatible with oc-inet:port-number""",
          'defined-type': "oc-inet:port-number",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16)(1813), is_leaf=True, yang_name="acct-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:port-number', is_config=False)""",
        })

    self.__acct_port = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_acct_port(self):
    self.__acct_port = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16)(1813), is_leaf=True, yang_name="acct-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:port-number', is_config=False)


  def _get_secret_key(self):
    """
    Getter method for secret_key, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/radius/state/secret_key (oc-types:routing-password)

    YANG Description: The unencrypted shared key used between the authentication
server and the device.
    """
    return self.__secret_key
      
  def _set_secret_key(self, v, load=False):
    """
    Setter method for secret_key, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/radius/state/secret_key (oc-types:routing-password)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_secret_key is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_secret_key() directly.

    YANG Description: The unencrypted shared key used between the authentication
server and the device.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="secret-key", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:routing-password', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """secret_key must be of a type compatible with oc-types:routing-password""",
          'defined-type': "oc-types:routing-password",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="secret-key", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:routing-password', is_config=False)""",
        })

    self.__secret_key = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_secret_key(self):
    self.__secret_key = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="secret-key", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:routing-password', is_config=False)


  def _get_secret_key_hashed(self):
    """
    Getter method for secret_key_hashed, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/radius/state/secret_key_hashed (oc-aaa-types:crypt-password-type)

    YANG Description: The hashed shared key used between the authentication
server and the device.
    """
    return self.__secret_key_hashed
      
  def _set_secret_key_hashed(self, v, load=False):
    """
    Setter method for secret_key_hashed, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/radius/state/secret_key_hashed (oc-aaa-types:crypt-password-type)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_secret_key_hashed is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_secret_key_hashed() directly.

    YANG Description: The hashed shared key used between the authentication
server and the device.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="secret-key-hashed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-aaa-types:crypt-password-type', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """secret_key_hashed must be of a type compatible with oc-aaa-types:crypt-password-type""",
          'defined-type': "oc-aaa-types:crypt-password-type",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="secret-key-hashed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-aaa-types:crypt-password-type', is_config=False)""",
        })

    self.__secret_key_hashed = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_secret_key_hashed(self):
    self.__secret_key_hashed = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="secret-key-hashed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-aaa-types:crypt-password-type', is_config=False)


  def _get_source_address(self):
    """
    Getter method for source_address, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/radius/state/source_address (oc-inet:ip-address)

    YANG Description: Source IP address to use in messages to the RADIUS server
    """
    return self.__source_address
      
  def _set_source_address(self, v, load=False):
    """
    Setter method for source_address, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/radius/state/source_address (oc-inet:ip-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_source_address is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_source_address() directly.

    YANG Description: Source IP address to use in messages to the RADIUS server
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),], is_leaf=True, yang_name="source-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ip-address', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """source_address must be of a type compatible with oc-inet:ip-address""",
          'defined-type': "oc-inet:ip-address",
          'generated-type': """YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),], is_leaf=True, yang_name="source-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ip-address', is_config=False)""",
        })

    self.__source_address = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_source_address(self):
    self.__source_address = YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),], is_leaf=True, yang_name="source-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ip-address', is_config=False)


  def _get_retransmit_attempts(self):
    """
    Getter method for retransmit_attempts, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/radius/state/retransmit_attempts (uint8)

    YANG Description: Number of times the system may resend a request to the
RADIUS server when it is unresponsive
    """
    return self.__retransmit_attempts
      
  def _set_retransmit_attempts(self, v, load=False):
    """
    Setter method for retransmit_attempts, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/radius/state/retransmit_attempts (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_retransmit_attempts is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_retransmit_attempts() directly.

    YANG Description: Number of times the system may resend a request to the
RADIUS server when it is unresponsive
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="retransmit-attempts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """retransmit_attempts must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="retransmit-attempts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)""",
        })

    self.__retransmit_attempts = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_retransmit_attempts(self):
    self.__retransmit_attempts = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="retransmit-attempts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)


  def _get_counters(self):
    """
    Getter method for counters, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/radius/state/counters (container)

    YANG Description: A collection of RADIUS related state objects.
    """
    return self.__counters
      
  def _set_counters(self, v, load=False):
    """
    Setter method for counters, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/radius/state/counters (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_counters is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_counters() directly.

    YANG Description: A collection of RADIUS related state objects.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_counters_openconfig_access_points__access_points_access_point_system_aaa_server_groups_server_group_servers_server_radius_state_counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """counters must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_counters_openconfig_access_points__access_points_access_point_system_aaa_server_groups_server_group_servers_server_radius_state_counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)""",
        })

    self.__counters = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_counters(self):
    self.__counters = YANGDynClass(base=yc_counters_openconfig_access_points__access_points_access_point_system_aaa_server_groups_server_group_servers_server_radius_state_counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)

  auth_port = __builtin__.property(_get_auth_port)
  acct_port = __builtin__.property(_get_acct_port)
  secret_key = __builtin__.property(_get_secret_key)
  secret_key_hashed = __builtin__.property(_get_secret_key_hashed)
  source_address = __builtin__.property(_get_source_address)
  retransmit_attempts = __builtin__.property(_get_retransmit_attempts)
  counters = __builtin__.property(_get_counters)


  _pyangbind_elements = OrderedDict([('auth_port', auth_port), ('acct_port', acct_port), ('secret_key', secret_key), ('secret_key_hashed', secret_key_hashed), ('source_address', source_address), ('retransmit_attempts', retransmit_attempts), ('counters', counters), ])


class yc_radius_openconfig_access_points__access_points_access_point_system_aaa_server_groups_server_group_servers_server_radius(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/aaa/server-groups/server-group/servers/server/radius. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Top-level container for RADIUS server data
  """
  __slots__ = ('_path_helper', '_extmethods', '__config','__state',)

  _yang_name = 'radius'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_aaa_server_groups_server_group_servers_server_radius_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_aaa_server_groups_server_group_servers_server_radius_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'system', 'aaa', 'server-groups', 'server-group', 'servers', 'server', 'radius']

  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/radius/config (container)

    YANG Description: Configuration data for RADIUS servers
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/radius/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Configuration data for RADIUS servers
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_access_points__access_points_access_point_system_aaa_server_groups_server_group_servers_server_radius_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_aaa_server_groups_server_group_servers_server_radius_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_aaa_server_groups_server_group_servers_server_radius_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/radius/state (container)

    YANG Description: Operational state data for RADIUS servers
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/radius/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: Operational state data for RADIUS servers
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_system_aaa_server_groups_server_group_servers_server_radius_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_aaa_server_groups_server_group_servers_server_radius_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_aaa_server_groups_server_group_servers_server_radius_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)


  _pyangbind_elements = OrderedDict([('config', config), ('state', state), ])


class yc_server_openconfig_access_points__access_points_access_point_system_aaa_server_groups_server_group_servers_server(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/aaa/server-groups/server-group/servers/server. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: List of AAA servers
  """
  __slots__ = ('_path_helper', '_extmethods', '__address','__config','__state','__tacacs','__radius',)

  _yang_name = 'server'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__address = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_aaa_server_groups_server_group_servers_server_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_aaa_server_groups_server_group_servers_server_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__tacacs = YANGDynClass(base=yc_tacacs_openconfig_access_points__access_points_access_point_system_aaa_server_groups_server_group_servers_server_tacacs, is_container='container', yang_name="tacacs", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__radius = YANGDynClass(base=yc_radius_openconfig_access_points__access_points_access_point_system_aaa_server_groups_server_group_servers_server_radius, is_container='container', yang_name="radius", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'system', 'aaa', 'server-groups', 'server-group', 'servers', 'server']

  def _get_address(self):
    """
    Getter method for address, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/address (leafref)

    YANG Description: Reference to the configured address of the AAA server
    """
    return self.__address
      
  def _set_address(self, v, load=False):
    """
    Setter method for address, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/address (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_address is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_address() directly.

    YANG Description: Reference to the configured address of the AAA server
    """
    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="address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """address must be of a type compatible with leafref""",
          'defined-type': "leafref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)""",
        })

    self.__address = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_address(self):
    self.__address = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)


  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/config (container)

    YANG Description: Configuration data 
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Configuration data 
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_access_points__access_points_access_point_system_aaa_server_groups_server_group_servers_server_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_aaa_server_groups_server_group_servers_server_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_aaa_server_groups_server_group_servers_server_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/state (container)

    YANG Description: Operational state data 
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/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: Operational state data 
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_system_aaa_server_groups_server_group_servers_server_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_aaa_server_groups_server_group_servers_server_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_aaa_server_groups_server_group_servers_server_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_tacacs(self):
    """
    Getter method for tacacs, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/tacacs (container)

    YANG Description: Top-level container for TACACS+ server data
    """
    return self.__tacacs
      
  def _set_tacacs(self, v, load=False):
    """
    Setter method for tacacs, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/tacacs (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tacacs is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tacacs() directly.

    YANG Description: Top-level container for TACACS+ server data
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_tacacs_openconfig_access_points__access_points_access_point_system_aaa_server_groups_server_group_servers_server_tacacs, is_container='container', yang_name="tacacs", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tacacs must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_tacacs_openconfig_access_points__access_points_access_point_system_aaa_server_groups_server_group_servers_server_tacacs, is_container='container', yang_name="tacacs", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__tacacs = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_tacacs(self):
    self.__tacacs = YANGDynClass(base=yc_tacacs_openconfig_access_points__access_points_access_point_system_aaa_server_groups_server_group_servers_server_tacacs, is_container='container', yang_name="tacacs", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_radius(self):
    """
    Getter method for radius, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/radius (container)

    YANG Description: Top-level container for RADIUS server data
    """
    return self.__radius
      
  def _set_radius(self, v, load=False):
    """
    Setter method for radius, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server/radius (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_radius is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_radius() directly.

    YANG Description: Top-level container for RADIUS server data
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_radius_openconfig_access_points__access_points_access_point_system_aaa_server_groups_server_group_servers_server_radius, is_container='container', yang_name="radius", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """radius must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_radius_openconfig_access_points__access_points_access_point_system_aaa_server_groups_server_group_servers_server_radius, is_container='container', yang_name="radius", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__radius = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_radius(self):
    self.__radius = YANGDynClass(base=yc_radius_openconfig_access_points__access_points_access_point_system_aaa_server_groups_server_group_servers_server_radius, is_container='container', yang_name="radius", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

  address = __builtin__.property(_get_address, _set_address)
  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)
  tacacs = __builtin__.property(_get_tacacs, _set_tacacs)
  radius = __builtin__.property(_get_radius, _set_radius)


  _pyangbind_elements = OrderedDict([('address', address), ('config', config), ('state', state), ('tacacs', tacacs), ('radius', radius), ])


class yc_servers_openconfig_access_points__access_points_access_point_system_aaa_server_groups_server_group_servers(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/aaa/server-groups/server-group/servers. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Enclosing container the list of servers
  """
  __slots__ = ('_path_helper', '_extmethods', '__server',)

  _yang_name = 'servers'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__server = YANGDynClass(base=YANGListType("address",yc_server_openconfig_access_points__access_points_access_point_system_aaa_server_groups_server_group_servers_server, yang_name="server", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='address', extensions=None), is_container='list', yang_name="server", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)

    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 ['access-points', 'access-point', 'system', 'aaa', 'server-groups', 'server-group', 'servers']

  def _get_server(self):
    """
    Getter method for server, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server (list)

    YANG Description: List of AAA servers
    """
    return self.__server
      
  def _set_server(self, v, load=False):
    """
    Setter method for server, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers/server (list)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_server is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_server() directly.

    YANG Description: List of AAA servers
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGListType("address",yc_server_openconfig_access_points__access_points_access_point_system_aaa_server_groups_server_group_servers_server, yang_name="server", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='address', extensions=None), is_container='list', yang_name="server", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """server must be of a type compatible with list""",
          'defined-type': "list",
          'generated-type': """YANGDynClass(base=YANGListType("address",yc_server_openconfig_access_points__access_points_access_point_system_aaa_server_groups_server_group_servers_server, yang_name="server", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='address', extensions=None), is_container='list', yang_name="server", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)""",
        })

    self.__server = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_server(self):
    self.__server = YANGDynClass(base=YANGListType("address",yc_server_openconfig_access_points__access_points_access_point_system_aaa_server_groups_server_group_servers_server, yang_name="server", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='address', extensions=None), is_container='list', yang_name="server", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)

  server = __builtin__.property(_get_server, _set_server)


  _pyangbind_elements = OrderedDict([('server', server), ])


class yc_server_group_openconfig_access_points__access_points_access_point_system_aaa_server_groups_server_group(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/aaa/server-groups/server-group. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: List of AAA server groups.  All servers in a group
must have the same type as indicated by the server
type.
  """
  __slots__ = ('_path_helper', '_extmethods', '__name','__config','__state','__servers',)

  _yang_name = 'server-group'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_aaa_server_groups_server_group_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_aaa_server_groups_server_group_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__servers = YANGDynClass(base=yc_servers_openconfig_access_points__access_points_access_point_system_aaa_server_groups_server_group_servers, is_container='container', yang_name="servers", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'system', 'aaa', 'server-groups', 'server-group']

  def _get_name(self):
    """
    Getter method for name, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/name (leafref)

    YANG Description: Reference to configured name of the server group
    """
    return self.__name
      
  def _set_name(self, v, load=False):
    """
    Setter method for name, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/name (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_name is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_name() directly.

    YANG Description: Reference to configured name of the server group
    """
    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="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """name must be of a type compatible with leafref""",
          'defined-type': "leafref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)""",
        })

    self.__name = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_name(self):
    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)


  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/config (container)

    YANG Description: Configuration data for each server group
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Configuration data for each server group
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_access_points__access_points_access_point_system_aaa_server_groups_server_group_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_aaa_server_groups_server_group_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_aaa_server_groups_server_group_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/state (container)

    YANG Description: Operational state data for each server group
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/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: Operational state data for each server group
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_system_aaa_server_groups_server_group_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_aaa_server_groups_server_group_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_aaa_server_groups_server_group_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_servers(self):
    """
    Getter method for servers, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers (container)

    YANG Description: Enclosing container the list of servers
    """
    return self.__servers
      
  def _set_servers(self, v, load=False):
    """
    Setter method for servers, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group/servers (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_servers is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_servers() directly.

    YANG Description: Enclosing container the list of servers
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_servers_openconfig_access_points__access_points_access_point_system_aaa_server_groups_server_group_servers, is_container='container', yang_name="servers", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """servers must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_servers_openconfig_access_points__access_points_access_point_system_aaa_server_groups_server_group_servers, is_container='container', yang_name="servers", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__servers = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_servers(self):
    self.__servers = YANGDynClass(base=yc_servers_openconfig_access_points__access_points_access_point_system_aaa_server_groups_server_group_servers, is_container='container', yang_name="servers", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

  name = __builtin__.property(_get_name, _set_name)
  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)
  servers = __builtin__.property(_get_servers, _set_servers)


  _pyangbind_elements = OrderedDict([('name', name), ('config', config), ('state', state), ('servers', servers), ])


class yc_server_groups_openconfig_access_points__access_points_access_point_system_aaa_server_groups(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/aaa/server-groups. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Enclosing container for AAA server groups
  """
  __slots__ = ('_path_helper', '_extmethods', '__server_group',)

  _yang_name = 'server-groups'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__server_group = YANGDynClass(base=YANGListType("name",yc_server_group_openconfig_access_points__access_points_access_point_system_aaa_server_groups_server_group, yang_name="server-group", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="server-group", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)

    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 ['access-points', 'access-point', 'system', 'aaa', 'server-groups']

  def _get_server_group(self):
    """
    Getter method for server_group, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group (list)

    YANG Description: List of AAA server groups.  All servers in a group
must have the same type as indicated by the server
type.
    """
    return self.__server_group
      
  def _set_server_group(self, v, load=False):
    """
    Setter method for server_group, mapped from YANG variable /access_points/access_point/system/aaa/server_groups/server_group (list)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_server_group is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_server_group() directly.

    YANG Description: List of AAA server groups.  All servers in a group
must have the same type as indicated by the server
type.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGListType("name",yc_server_group_openconfig_access_points__access_points_access_point_system_aaa_server_groups_server_group, yang_name="server-group", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="server-group", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """server_group must be of a type compatible with list""",
          'defined-type': "list",
          'generated-type': """YANGDynClass(base=YANGListType("name",yc_server_group_openconfig_access_points__access_points_access_point_system_aaa_server_groups_server_group, yang_name="server-group", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="server-group", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)""",
        })

    self.__server_group = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_server_group(self):
    self.__server_group = YANGDynClass(base=YANGListType("name",yc_server_group_openconfig_access_points__access_points_access_point_system_aaa_server_groups_server_group, yang_name="server-group", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="server-group", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)

  server_group = __builtin__.property(_get_server_group, _set_server_group)


  _pyangbind_elements = OrderedDict([('server_group', server_group), ])


class yc_aaa_openconfig_access_points__access_points_access_point_system_aaa(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/aaa. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Top-level container for AAA services
  """
  __slots__ = ('_path_helper', '_extmethods', '__authentication','__authorization','__accounting','__server_groups',)

  _yang_name = 'aaa'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__authentication = YANGDynClass(base=yc_authentication_openconfig_access_points__access_points_access_point_system_aaa_authentication, is_container='container', yang_name="authentication", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__authorization = YANGDynClass(base=yc_authorization_openconfig_access_points__access_points_access_point_system_aaa_authorization, is_container='container', yang_name="authorization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__accounting = YANGDynClass(base=yc_accounting_openconfig_access_points__access_points_access_point_system_aaa_accounting, is_container='container', yang_name="accounting", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__server_groups = YANGDynClass(base=yc_server_groups_openconfig_access_points__access_points_access_point_system_aaa_server_groups, is_container='container', yang_name="server-groups", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'system', 'aaa']

  def _get_authentication(self):
    """
    Getter method for authentication, mapped from YANG variable /access_points/access_point/system/aaa/authentication (container)

    YANG Description: Top-level container for global authentication data
    """
    return self.__authentication
      
  def _set_authentication(self, v, load=False):
    """
    Setter method for authentication, mapped from YANG variable /access_points/access_point/system/aaa/authentication (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_authentication is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_authentication() directly.

    YANG Description: Top-level container for global authentication data
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_authentication_openconfig_access_points__access_points_access_point_system_aaa_authentication, is_container='container', yang_name="authentication", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """authentication must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_authentication_openconfig_access_points__access_points_access_point_system_aaa_authentication, is_container='container', yang_name="authentication", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__authentication = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_authentication(self):
    self.__authentication = YANGDynClass(base=yc_authentication_openconfig_access_points__access_points_access_point_system_aaa_authentication, is_container='container', yang_name="authentication", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_authorization(self):
    """
    Getter method for authorization, mapped from YANG variable /access_points/access_point/system/aaa/authorization (container)

    YANG Description: Top-level container for AAA authorization configuration
and operational state data
    """
    return self.__authorization
      
  def _set_authorization(self, v, load=False):
    """
    Setter method for authorization, mapped from YANG variable /access_points/access_point/system/aaa/authorization (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_authorization is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_authorization() directly.

    YANG Description: Top-level container for AAA authorization configuration
and operational state data
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_authorization_openconfig_access_points__access_points_access_point_system_aaa_authorization, is_container='container', yang_name="authorization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """authorization must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_authorization_openconfig_access_points__access_points_access_point_system_aaa_authorization, is_container='container', yang_name="authorization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__authorization = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_authorization(self):
    self.__authorization = YANGDynClass(base=yc_authorization_openconfig_access_points__access_points_access_point_system_aaa_authorization, is_container='container', yang_name="authorization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_accounting(self):
    """
    Getter method for accounting, mapped from YANG variable /access_points/access_point/system/aaa/accounting (container)

    YANG Description: Top-level container for AAA accounting
    """
    return self.__accounting
      
  def _set_accounting(self, v, load=False):
    """
    Setter method for accounting, mapped from YANG variable /access_points/access_point/system/aaa/accounting (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_accounting is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_accounting() directly.

    YANG Description: Top-level container for AAA accounting
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_accounting_openconfig_access_points__access_points_access_point_system_aaa_accounting, is_container='container', yang_name="accounting", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """accounting must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_accounting_openconfig_access_points__access_points_access_point_system_aaa_accounting, is_container='container', yang_name="accounting", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__accounting = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_accounting(self):
    self.__accounting = YANGDynClass(base=yc_accounting_openconfig_access_points__access_points_access_point_system_aaa_accounting, is_container='container', yang_name="accounting", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_server_groups(self):
    """
    Getter method for server_groups, mapped from YANG variable /access_points/access_point/system/aaa/server_groups (container)

    YANG Description: Enclosing container for AAA server groups
    """
    return self.__server_groups
      
  def _set_server_groups(self, v, load=False):
    """
    Setter method for server_groups, mapped from YANG variable /access_points/access_point/system/aaa/server_groups (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_server_groups is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_server_groups() directly.

    YANG Description: Enclosing container for AAA server groups
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_server_groups_openconfig_access_points__access_points_access_point_system_aaa_server_groups, is_container='container', yang_name="server-groups", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """server_groups must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_server_groups_openconfig_access_points__access_points_access_point_system_aaa_server_groups, is_container='container', yang_name="server-groups", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__server_groups = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_server_groups(self):
    self.__server_groups = YANGDynClass(base=yc_server_groups_openconfig_access_points__access_points_access_point_system_aaa_server_groups, is_container='container', yang_name="server-groups", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

  authentication = __builtin__.property(_get_authentication, _set_authentication)
  authorization = __builtin__.property(_get_authorization, _set_authorization)
  accounting = __builtin__.property(_get_accounting, _set_accounting)
  server_groups = __builtin__.property(_get_server_groups, _set_server_groups)


  _pyangbind_elements = OrderedDict([('authentication', authentication), ('authorization', authorization), ('accounting', accounting), ('server_groups', server_groups), ])


class yc_state_openconfig_access_points__access_points_access_point_system_alarms_alarm_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/alarms/alarm/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Operational state data for a device alarm
  """
  __slots__ = ('_path_helper', '_extmethods', '__id','__resource','__text','__time_created','__severity','__type_id',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__id = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)
    self.__resource = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="resource", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)
    self.__text = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="text", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)
    self.__time_created = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="time-created", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)
    self.__severity = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'UNKNOWN': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:UNKNOWN': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'MINOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:MINOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'WARNING': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:WARNING': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'MAJOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:MAJOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'CRITICAL': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:CRITICAL': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}},), is_leaf=True, yang_name="severity", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)
    self.__type_id = YANGDynClass(base=[six.text_type,RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'AIS': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:AIS': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'EQPT': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:EQPT': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'LOS': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:LOS': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'OTS': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:OTS': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}},),], is_leaf=True, yang_name="type-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='union', 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 ['access-points', 'access-point', 'system', 'alarms', 'alarm', 'state']

  def _get_id(self):
    """
    Getter method for id, mapped from YANG variable /access_points/access_point/system/alarms/alarm/state/id (string)

    YANG Description: Unique ID for the alarm -- this will not be a
configurable parameter on many implementations
    """
    return self.__id
      
  def _set_id(self, v, load=False):
    """
    Setter method for id, mapped from YANG variable /access_points/access_point/system/alarms/alarm/state/id (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_id is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_id() directly.

    YANG Description: Unique ID for the alarm -- this will not be a
configurable parameter on many implementations
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """id must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)""",
        })

    self.__id = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_id(self):
    self.__id = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)


  def _get_resource(self):
    """
    Getter method for resource, mapped from YANG variable /access_points/access_point/system/alarms/alarm/state/resource (string)

    YANG Description: The item that is under alarm within the device. The
resource may be a reference to an item which is
defined elsewhere in the model. For example, it
may be a platform/component, interfaces/interface,
terminal-device/logical-channels/channel, etc. In this
case the system should match the name of the referenced
item exactly. The referenced item could alternatively be
the path of the item within the model.
    """
    return self.__resource
      
  def _set_resource(self, v, load=False):
    """
    Setter method for resource, mapped from YANG variable /access_points/access_point/system/alarms/alarm/state/resource (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_resource is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_resource() directly.

    YANG Description: The item that is under alarm within the device. The
resource may be a reference to an item which is
defined elsewhere in the model. For example, it
may be a platform/component, interfaces/interface,
terminal-device/logical-channels/channel, etc. In this
case the system should match the name of the referenced
item exactly. The referenced item could alternatively be
the path of the item within the model.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="resource", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """resource must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="resource", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)""",
        })

    self.__resource = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_resource(self):
    self.__resource = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="resource", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)


  def _get_text(self):
    """
    Getter method for text, mapped from YANG variable /access_points/access_point/system/alarms/alarm/state/text (string)

    YANG Description: The string used to inform operators about the alarm. This
MUST contain enough information for an operator to be able
to understand the problem. If this string contains structure,
this format should be clearly documented for programs to be
able to parse that information
    """
    return self.__text
      
  def _set_text(self, v, load=False):
    """
    Setter method for text, mapped from YANG variable /access_points/access_point/system/alarms/alarm/state/text (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_text is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_text() directly.

    YANG Description: The string used to inform operators about the alarm. This
MUST contain enough information for an operator to be able
to understand the problem. If this string contains structure,
this format should be clearly documented for programs to be
able to parse that information
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="text", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """text must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="text", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)""",
        })

    self.__text = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_text(self):
    self.__text = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="text", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)


  def _get_time_created(self):
    """
    Getter method for time_created, mapped from YANG variable /access_points/access_point/system/alarms/alarm/state/time_created (oc-types:timeticks64)

    YANG Description: The time at which the alarm was raised by the system.
This value is expressed relative to the Unix Epoch.
    """
    return self.__time_created
      
  def _set_time_created(self, v, load=False):
    """
    Setter method for time_created, mapped from YANG variable /access_points/access_point/system/alarms/alarm/state/time_created (oc-types:timeticks64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_time_created is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_time_created() directly.

    YANG Description: The time at which the alarm was raised by the system.
This value is expressed relative to the Unix Epoch.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="time-created", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """time_created must be of a type compatible with oc-types:timeticks64""",
          'defined-type': "oc-types:timeticks64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="time-created", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)""",
        })

    self.__time_created = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_time_created(self):
    self.__time_created = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="time-created", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)


  def _get_severity(self):
    """
    Getter method for severity, mapped from YANG variable /access_points/access_point/system/alarms/alarm/state/severity (identityref)

    YANG Description: The severity level indicating the criticality and impact
of the alarm
    """
    return self.__severity
      
  def _set_severity(self, v, load=False):
    """
    Setter method for severity, mapped from YANG variable /access_points/access_point/system/alarms/alarm/state/severity (identityref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_severity is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_severity() directly.

    YANG Description: The severity level indicating the criticality and impact
of the alarm
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'UNKNOWN': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:UNKNOWN': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'MINOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:MINOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'WARNING': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:WARNING': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'MAJOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:MAJOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'CRITICAL': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:CRITICAL': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}},), is_leaf=True, yang_name="severity", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """severity must be of a type compatible with identityref""",
          'defined-type': "openconfig-access-points:identityref",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'UNKNOWN': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:UNKNOWN': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'MINOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:MINOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'WARNING': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:WARNING': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'MAJOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:MAJOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'CRITICAL': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:CRITICAL': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}},), is_leaf=True, yang_name="severity", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)""",
        })

    self.__severity = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_severity(self):
    self.__severity = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'UNKNOWN': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:UNKNOWN': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'MINOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:MINOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'WARNING': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:WARNING': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'MAJOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:MAJOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'CRITICAL': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:CRITICAL': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}},), is_leaf=True, yang_name="severity", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)


  def _get_type_id(self):
    """
    Getter method for type_id, mapped from YANG variable /access_points/access_point/system/alarms/alarm/state/type_id (union)

    YANG Description: The abbreviated name of the alarm, for example LOS,
EQPT, or OTS. Also referred to in different systems as
condition type, alarm identifier, or alarm mnemonic. It
is recommended to use the OPENCONFIG_ALARM_TYPE_ID
identities where possible and only use the string type
when the desired identityref is not yet defined
    """
    return self.__type_id
      
  def _set_type_id(self, v, load=False):
    """
    Setter method for type_id, mapped from YANG variable /access_points/access_point/system/alarms/alarm/state/type_id (union)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_type_id is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_type_id() directly.

    YANG Description: The abbreviated name of the alarm, for example LOS,
EQPT, or OTS. Also referred to in different systems as
condition type, alarm identifier, or alarm mnemonic. It
is recommended to use the OPENCONFIG_ALARM_TYPE_ID
identities where possible and only use the string type
when the desired identityref is not yet defined
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=[six.text_type,RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'AIS': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:AIS': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'EQPT': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:EQPT': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'LOS': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:LOS': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'OTS': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:OTS': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}},),], is_leaf=True, yang_name="type-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='union', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """type_id must be of a type compatible with union""",
          'defined-type': "openconfig-access-points:union",
          'generated-type': """YANGDynClass(base=[six.text_type,RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'AIS': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:AIS': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'EQPT': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:EQPT': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'LOS': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:LOS': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'OTS': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:OTS': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}},),], is_leaf=True, yang_name="type-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='union', is_config=False)""",
        })

    self.__type_id = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_type_id(self):
    self.__type_id = YANGDynClass(base=[six.text_type,RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'AIS': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:AIS': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'EQPT': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:EQPT': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'LOS': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:LOS': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'OTS': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:OTS': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}},),], is_leaf=True, yang_name="type-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='union', is_config=False)

  id = __builtin__.property(_get_id)
  resource = __builtin__.property(_get_resource)
  text = __builtin__.property(_get_text)
  time_created = __builtin__.property(_get_time_created)
  severity = __builtin__.property(_get_severity)
  type_id = __builtin__.property(_get_type_id)


  _pyangbind_elements = OrderedDict([('id', id), ('resource', resource), ('text', text), ('time_created', time_created), ('severity', severity), ('type_id', type_id), ])


class yc_alarm_openconfig_access_points__access_points_access_point_system_alarms_alarm(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/alarms/alarm. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: List of alarms, keyed by a unique id
  """
  __slots__ = ('_path_helper', '_extmethods', '__id','__state',)

  _yang_name = 'alarm'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__id = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=False)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_alarms_alarm_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/wifi/access-points', defining_module='openconfig-access-points', 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 ['access-points', 'access-point', 'system', 'alarms', 'alarm']

  def _get_id(self):
    """
    Getter method for id, mapped from YANG variable /access_points/access_point/system/alarms/alarm/id (leafref)

    YANG Description: References the unique alarm id
    """
    return self.__id
      
  def _set_id(self, v, load=False):
    """
    Setter method for id, mapped from YANG variable /access_points/access_point/system/alarms/alarm/id (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_id is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_id() directly.

    YANG Description: References the unique alarm id
    """
    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="id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """id must be of a type compatible with leafref""",
          'defined-type': "leafref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=False)""",
        })

    self.__id = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_id(self):
    self.__id = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=False)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/system/alarms/alarm/state (container)

    YANG Description: Operational state data for a device alarm
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/system/alarms/alarm/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: Operational state data for a device alarm
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_system_alarms_alarm_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/wifi/access-points', defining_module='openconfig-access-points', 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=yc_state_openconfig_access_points__access_points_access_point_system_alarms_alarm_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_alarms_alarm_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)

  id = __builtin__.property(_get_id)
  state = __builtin__.property(_get_state)


  _pyangbind_elements = OrderedDict([('id', id), ('state', state), ])


class yc_alarms_openconfig_access_points__access_points_access_point_system_alarms(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/alarms. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Top-level container for device alarms
  """
  __slots__ = ('_path_helper', '_extmethods', '__alarm',)

  _yang_name = 'alarms'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__alarm = YANGDynClass(base=YANGListType("id",yc_alarm_openconfig_access_points__access_points_access_point_system_alarms_alarm, yang_name="alarm", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='id', extensions=None), is_container='list', yang_name="alarm", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', 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 ['access-points', 'access-point', 'system', 'alarms']

  def _get_alarm(self):
    """
    Getter method for alarm, mapped from YANG variable /access_points/access_point/system/alarms/alarm (list)

    YANG Description: List of alarms, keyed by a unique id
    """
    return self.__alarm
      
  def _set_alarm(self, v, load=False):
    """
    Setter method for alarm, mapped from YANG variable /access_points/access_point/system/alarms/alarm (list)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_alarm is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_alarm() directly.

    YANG Description: List of alarms, keyed by a unique id
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGListType("id",yc_alarm_openconfig_access_points__access_points_access_point_system_alarms_alarm, yang_name="alarm", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='id', extensions=None), is_container='list', yang_name="alarm", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """alarm must be of a type compatible with list""",
          'defined-type': "list",
          'generated-type': """YANGDynClass(base=YANGListType("id",yc_alarm_openconfig_access_points__access_points_access_point_system_alarms_alarm, yang_name="alarm", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='id', extensions=None), is_container='list', yang_name="alarm", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=False)""",
        })

    self.__alarm = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_alarm(self):
    self.__alarm = YANGDynClass(base=YANGListType("id",yc_alarm_openconfig_access_points__access_points_access_point_system_alarms_alarm, yang_name="alarm", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='id', extensions=None), is_container='list', yang_name="alarm", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=False)

  alarm = __builtin__.property(_get_alarm)


  _pyangbind_elements = OrderedDict([('alarm', alarm), ])


class yc_config_openconfig_access_points__access_points_access_point_system_logging_console_selectors_selector_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/logging/console/selectors/selector/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Configuration data 
  """
  __slots__ = ('_path_helper', '_extmethods', '__facility','__severity',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__facility = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'ALL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:ALL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'KERNEL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:KERNEL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'USER': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:USER': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'MAIL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:MAIL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'SYSTEM_DAEMON': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:SYSTEM_DAEMON': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'AUTH': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:AUTH': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'SYSLOG': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:SYSLOG': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'AUTHPRIV': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:AUTHPRIV': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'NTP': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:NTP': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'AUDIT': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:AUDIT': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'CONSOLE': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:CONSOLE': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL0': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL0': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL1': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL1': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL2': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL2': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL3': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL3': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL4': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL4': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL5': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL5': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL6': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL6': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL7': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL7': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}},), is_leaf=True, yang_name="facility", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=True)
    self.__severity = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'EMERGENCY': {}, 'ALERT': {}, 'CRITICAL': {}, 'ERROR': {}, 'WARNING': {}, 'NOTICE': {}, 'INFORMATIONAL': {}, 'DEBUG': {}},), is_leaf=True, yang_name="severity", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='syslog-severity', is_config=True)

    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 ['access-points', 'access-point', 'system', 'logging', 'console', 'selectors', 'selector', 'config']

  def _get_facility(self):
    """
    Getter method for facility, mapped from YANG variable /access_points/access_point/system/logging/console/selectors/selector/config/facility (identityref)

    YANG Description: Specifies the facility, or class of messages to log
    """
    return self.__facility
      
  def _set_facility(self, v, load=False):
    """
    Setter method for facility, mapped from YANG variable /access_points/access_point/system/logging/console/selectors/selector/config/facility (identityref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_facility is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_facility() directly.

    YANG Description: Specifies the facility, or class of messages to log
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'ALL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:ALL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'KERNEL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:KERNEL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'USER': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:USER': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'MAIL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:MAIL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'SYSTEM_DAEMON': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:SYSTEM_DAEMON': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'AUTH': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:AUTH': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'SYSLOG': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:SYSLOG': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'AUTHPRIV': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:AUTHPRIV': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'NTP': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:NTP': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'AUDIT': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:AUDIT': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'CONSOLE': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:CONSOLE': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL0': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL0': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL1': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL1': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL2': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL2': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL3': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL3': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL4': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL4': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL5': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL5': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL6': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL6': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL7': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL7': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}},), is_leaf=True, yang_name="facility", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """facility must be of a type compatible with identityref""",
          'defined-type': "openconfig-access-points:identityref",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'ALL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:ALL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'KERNEL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:KERNEL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'USER': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:USER': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'MAIL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:MAIL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'SYSTEM_DAEMON': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:SYSTEM_DAEMON': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'AUTH': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:AUTH': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'SYSLOG': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:SYSLOG': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'AUTHPRIV': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:AUTHPRIV': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'NTP': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:NTP': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'AUDIT': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:AUDIT': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'CONSOLE': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:CONSOLE': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL0': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL0': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL1': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL1': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL2': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL2': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL3': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL3': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL4': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL4': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL5': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL5': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL6': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL6': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL7': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL7': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}},), is_leaf=True, yang_name="facility", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=True)""",
        })

    self.__facility = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_facility(self):
    self.__facility = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'ALL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:ALL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'KERNEL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:KERNEL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'USER': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:USER': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'MAIL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:MAIL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'SYSTEM_DAEMON': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:SYSTEM_DAEMON': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'AUTH': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:AUTH': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'SYSLOG': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:SYSLOG': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'AUTHPRIV': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:AUTHPRIV': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'NTP': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:NTP': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'AUDIT': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:AUDIT': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'CONSOLE': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:CONSOLE': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL0': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL0': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL1': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL1': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL2': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL2': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL3': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL3': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL4': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL4': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL5': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL5': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL6': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL6': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL7': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL7': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}},), is_leaf=True, yang_name="facility", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=True)


  def _get_severity(self):
    """
    Getter method for severity, mapped from YANG variable /access_points/access_point/system/logging/console/selectors/selector/config/severity (syslog-severity)

    YANG Description: Specifies that only messages of the given severity (or
greater severity) for the corresonding facility are logged
    """
    return self.__severity
      
  def _set_severity(self, v, load=False):
    """
    Setter method for severity, mapped from YANG variable /access_points/access_point/system/logging/console/selectors/selector/config/severity (syslog-severity)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_severity is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_severity() directly.

    YANG Description: Specifies that only messages of the given severity (or
greater severity) for the corresonding facility are logged
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'EMERGENCY': {}, 'ALERT': {}, 'CRITICAL': {}, 'ERROR': {}, 'WARNING': {}, 'NOTICE': {}, 'INFORMATIONAL': {}, 'DEBUG': {}},), is_leaf=True, yang_name="severity", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='syslog-severity', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """severity must be of a type compatible with syslog-severity""",
          'defined-type': "openconfig-access-points:syslog-severity",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'EMERGENCY': {}, 'ALERT': {}, 'CRITICAL': {}, 'ERROR': {}, 'WARNING': {}, 'NOTICE': {}, 'INFORMATIONAL': {}, 'DEBUG': {}},), is_leaf=True, yang_name="severity", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='syslog-severity', is_config=True)""",
        })

    self.__severity = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_severity(self):
    self.__severity = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'EMERGENCY': {}, 'ALERT': {}, 'CRITICAL': {}, 'ERROR': {}, 'WARNING': {}, 'NOTICE': {}, 'INFORMATIONAL': {}, 'DEBUG': {}},), is_leaf=True, yang_name="severity", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='syslog-severity', is_config=True)

  facility = __builtin__.property(_get_facility, _set_facility)
  severity = __builtin__.property(_get_severity, _set_severity)


  _pyangbind_elements = OrderedDict([('facility', facility), ('severity', severity), ])


class yc_state_openconfig_access_points__access_points_access_point_system_logging_console_selectors_selector_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/logging/console/selectors/selector/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Operational state data 
  """
  __slots__ = ('_path_helper', '_extmethods', '__facility','__severity',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__facility = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'ALL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:ALL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'KERNEL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:KERNEL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'USER': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:USER': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'MAIL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:MAIL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'SYSTEM_DAEMON': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:SYSTEM_DAEMON': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'AUTH': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:AUTH': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'SYSLOG': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:SYSLOG': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'AUTHPRIV': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:AUTHPRIV': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'NTP': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:NTP': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'AUDIT': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:AUDIT': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'CONSOLE': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:CONSOLE': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL0': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL0': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL1': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL1': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL2': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL2': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL3': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL3': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL4': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL4': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL5': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL5': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL6': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL6': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL7': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL7': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}},), is_leaf=True, yang_name="facility", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)
    self.__severity = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'EMERGENCY': {}, 'ALERT': {}, 'CRITICAL': {}, 'ERROR': {}, 'WARNING': {}, 'NOTICE': {}, 'INFORMATIONAL': {}, 'DEBUG': {}},), is_leaf=True, yang_name="severity", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='syslog-severity', 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 ['access-points', 'access-point', 'system', 'logging', 'console', 'selectors', 'selector', 'state']

  def _get_facility(self):
    """
    Getter method for facility, mapped from YANG variable /access_points/access_point/system/logging/console/selectors/selector/state/facility (identityref)

    YANG Description: Specifies the facility, or class of messages to log
    """
    return self.__facility
      
  def _set_facility(self, v, load=False):
    """
    Setter method for facility, mapped from YANG variable /access_points/access_point/system/logging/console/selectors/selector/state/facility (identityref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_facility is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_facility() directly.

    YANG Description: Specifies the facility, or class of messages to log
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'ALL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:ALL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'KERNEL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:KERNEL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'USER': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:USER': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'MAIL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:MAIL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'SYSTEM_DAEMON': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:SYSTEM_DAEMON': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'AUTH': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:AUTH': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'SYSLOG': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:SYSLOG': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'AUTHPRIV': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:AUTHPRIV': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'NTP': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:NTP': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'AUDIT': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:AUDIT': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'CONSOLE': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:CONSOLE': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL0': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL0': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL1': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL1': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL2': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL2': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL3': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL3': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL4': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL4': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL5': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL5': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL6': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL6': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL7': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL7': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}},), is_leaf=True, yang_name="facility", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """facility must be of a type compatible with identityref""",
          'defined-type': "openconfig-access-points:identityref",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'ALL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:ALL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'KERNEL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:KERNEL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'USER': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:USER': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'MAIL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:MAIL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'SYSTEM_DAEMON': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:SYSTEM_DAEMON': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'AUTH': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:AUTH': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'SYSLOG': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:SYSLOG': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'AUTHPRIV': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:AUTHPRIV': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'NTP': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:NTP': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'AUDIT': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:AUDIT': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'CONSOLE': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:CONSOLE': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL0': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL0': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL1': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL1': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL2': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL2': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL3': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL3': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL4': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL4': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL5': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL5': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL6': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL6': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL7': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL7': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}},), is_leaf=True, yang_name="facility", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)""",
        })

    self.__facility = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_facility(self):
    self.__facility = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'ALL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:ALL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'KERNEL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:KERNEL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'USER': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:USER': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'MAIL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:MAIL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'SYSTEM_DAEMON': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:SYSTEM_DAEMON': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'AUTH': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:AUTH': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'SYSLOG': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:SYSLOG': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'AUTHPRIV': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:AUTHPRIV': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'NTP': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:NTP': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'AUDIT': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:AUDIT': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'CONSOLE': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:CONSOLE': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL0': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL0': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL1': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL1': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL2': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL2': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL3': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL3': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL4': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL4': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL5': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL5': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL6': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL6': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL7': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL7': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}},), is_leaf=True, yang_name="facility", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)


  def _get_severity(self):
    """
    Getter method for severity, mapped from YANG variable /access_points/access_point/system/logging/console/selectors/selector/state/severity (syslog-severity)

    YANG Description: Specifies that only messages of the given severity (or
greater severity) for the corresonding facility are logged
    """
    return self.__severity
      
  def _set_severity(self, v, load=False):
    """
    Setter method for severity, mapped from YANG variable /access_points/access_point/system/logging/console/selectors/selector/state/severity (syslog-severity)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_severity is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_severity() directly.

    YANG Description: Specifies that only messages of the given severity (or
greater severity) for the corresonding facility are logged
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'EMERGENCY': {}, 'ALERT': {}, 'CRITICAL': {}, 'ERROR': {}, 'WARNING': {}, 'NOTICE': {}, 'INFORMATIONAL': {}, 'DEBUG': {}},), is_leaf=True, yang_name="severity", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='syslog-severity', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """severity must be of a type compatible with syslog-severity""",
          'defined-type': "openconfig-access-points:syslog-severity",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'EMERGENCY': {}, 'ALERT': {}, 'CRITICAL': {}, 'ERROR': {}, 'WARNING': {}, 'NOTICE': {}, 'INFORMATIONAL': {}, 'DEBUG': {}},), is_leaf=True, yang_name="severity", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='syslog-severity', is_config=False)""",
        })

    self.__severity = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_severity(self):
    self.__severity = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'EMERGENCY': {}, 'ALERT': {}, 'CRITICAL': {}, 'ERROR': {}, 'WARNING': {}, 'NOTICE': {}, 'INFORMATIONAL': {}, 'DEBUG': {}},), is_leaf=True, yang_name="severity", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='syslog-severity', is_config=False)

  facility = __builtin__.property(_get_facility)
  severity = __builtin__.property(_get_severity)


  _pyangbind_elements = OrderedDict([('facility', facility), ('severity', severity), ])


class yc_selector_openconfig_access_points__access_points_access_point_system_logging_console_selectors_selector(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/logging/console/selectors/selector. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: List of selectors for log messages
  """
  __slots__ = ('_path_helper', '_extmethods', '__facility','__severity','__config','__state',)

  _yang_name = 'selector'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__facility = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="facility", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)
    self.__severity = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="severity", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_logging_console_selectors_selector_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_logging_console_selectors_selector_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'system', 'logging', 'console', 'selectors', 'selector']

  def _get_facility(self):
    """
    Getter method for facility, mapped from YANG variable /access_points/access_point/system/logging/console/selectors/selector/facility (leafref)

    YANG Description: Reference to facility list key
    """
    return self.__facility
      
  def _set_facility(self, v, load=False):
    """
    Setter method for facility, mapped from YANG variable /access_points/access_point/system/logging/console/selectors/selector/facility (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_facility is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_facility() directly.

    YANG Description: Reference to facility list key
    """
    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="facility", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """facility must be of a type compatible with leafref""",
          'defined-type': "leafref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="facility", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)""",
        })

    self.__facility = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_facility(self):
    self.__facility = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="facility", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)


  def _get_severity(self):
    """
    Getter method for severity, mapped from YANG variable /access_points/access_point/system/logging/console/selectors/selector/severity (leafref)

    YANG Description: Reference to severity list key
    """
    return self.__severity
      
  def _set_severity(self, v, load=False):
    """
    Setter method for severity, mapped from YANG variable /access_points/access_point/system/logging/console/selectors/selector/severity (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_severity is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_severity() directly.

    YANG Description: Reference to severity list key
    """
    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="severity", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """severity must be of a type compatible with leafref""",
          'defined-type': "leafref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="severity", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)""",
        })

    self.__severity = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_severity(self):
    self.__severity = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="severity", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)


  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/system/logging/console/selectors/selector/config (container)

    YANG Description: Configuration data 
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/system/logging/console/selectors/selector/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Configuration data 
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_access_points__access_points_access_point_system_logging_console_selectors_selector_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_logging_console_selectors_selector_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_logging_console_selectors_selector_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/system/logging/console/selectors/selector/state (container)

    YANG Description: Operational state data 
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/system/logging/console/selectors/selector/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: Operational state data 
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_system_logging_console_selectors_selector_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_logging_console_selectors_selector_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_logging_console_selectors_selector_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

  facility = __builtin__.property(_get_facility, _set_facility)
  severity = __builtin__.property(_get_severity, _set_severity)
  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)


  _pyangbind_elements = OrderedDict([('facility', facility), ('severity', severity), ('config', config), ('state', state), ])


class yc_selectors_openconfig_access_points__access_points_access_point_system_logging_console_selectors(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/logging/console/selectors. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Enclosing container 
  """
  __slots__ = ('_path_helper', '_extmethods', '__selector',)

  _yang_name = 'selectors'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__selector = YANGDynClass(base=YANGListType("facility severity",yc_selector_openconfig_access_points__access_points_access_point_system_logging_console_selectors_selector, yang_name="selector", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='facility severity', extensions=None), is_container='list', yang_name="selector", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)

    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 ['access-points', 'access-point', 'system', 'logging', 'console', 'selectors']

  def _get_selector(self):
    """
    Getter method for selector, mapped from YANG variable /access_points/access_point/system/logging/console/selectors/selector (list)

    YANG Description: List of selectors for log messages
    """
    return self.__selector
      
  def _set_selector(self, v, load=False):
    """
    Setter method for selector, mapped from YANG variable /access_points/access_point/system/logging/console/selectors/selector (list)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_selector is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_selector() directly.

    YANG Description: List of selectors for log messages
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGListType("facility severity",yc_selector_openconfig_access_points__access_points_access_point_system_logging_console_selectors_selector, yang_name="selector", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='facility severity', extensions=None), is_container='list', yang_name="selector", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """selector must be of a type compatible with list""",
          'defined-type': "list",
          'generated-type': """YANGDynClass(base=YANGListType("facility severity",yc_selector_openconfig_access_points__access_points_access_point_system_logging_console_selectors_selector, yang_name="selector", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='facility severity', extensions=None), is_container='list', yang_name="selector", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)""",
        })

    self.__selector = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_selector(self):
    self.__selector = YANGDynClass(base=YANGListType("facility severity",yc_selector_openconfig_access_points__access_points_access_point_system_logging_console_selectors_selector, yang_name="selector", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='facility severity', extensions=None), is_container='list', yang_name="selector", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)

  selector = __builtin__.property(_get_selector, _set_selector)


  _pyangbind_elements = OrderedDict([('selector', selector), ])


class yc_console_openconfig_access_points__access_points_access_point_system_logging_console(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/logging/console. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Top-level container for data related to console-based
logging
  """
  __slots__ = ('_path_helper', '_extmethods', '__selectors',)

  _yang_name = 'console'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__selectors = YANGDynClass(base=yc_selectors_openconfig_access_points__access_points_access_point_system_logging_console_selectors, is_container='container', yang_name="selectors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'system', 'logging', 'console']

  def _get_selectors(self):
    """
    Getter method for selectors, mapped from YANG variable /access_points/access_point/system/logging/console/selectors (container)

    YANG Description: Enclosing container 
    """
    return self.__selectors
      
  def _set_selectors(self, v, load=False):
    """
    Setter method for selectors, mapped from YANG variable /access_points/access_point/system/logging/console/selectors (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_selectors is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_selectors() directly.

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

    self.__selectors = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_selectors(self):
    self.__selectors = YANGDynClass(base=yc_selectors_openconfig_access_points__access_points_access_point_system_logging_console_selectors, is_container='container', yang_name="selectors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

  selectors = __builtin__.property(_get_selectors, _set_selectors)


  _pyangbind_elements = OrderedDict([('selectors', selectors), ])


class yc_config_openconfig_access_points__access_points_access_point_system_logging_remote_servers_remote_server_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/logging/remote-servers/remote-server/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Configuration data for remote log servers
  """
  __slots__ = ('_path_helper', '_extmethods', '__host','__source_address','__network_instance','__remote_port',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__host = YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(((([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.)*([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.?)|\\.)', 'length': ['1..253']}),], is_leaf=True, yang_name="host", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:host', is_config=True)
    self.__source_address = YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),], is_leaf=True, yang_name="source-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ip-address', is_config=True)
    self.__network_instance = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="network-instance", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-ni:network-instance-ref', is_config=True)
    self.__remote_port = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16)(514), is_leaf=True, yang_name="remote-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:port-number', is_config=True)

    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 ['access-points', 'access-point', 'system', 'logging', 'remote-servers', 'remote-server', 'config']

  def _get_host(self):
    """
    Getter method for host, mapped from YANG variable /access_points/access_point/system/logging/remote_servers/remote_server/config/host (oc-inet:host)

    YANG Description: IP address or hostname of the remote log server
    """
    return self.__host
      
  def _set_host(self, v, load=False):
    """
    Setter method for host, mapped from YANG variable /access_points/access_point/system/logging/remote_servers/remote_server/config/host (oc-inet:host)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_host is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_host() directly.

    YANG Description: IP address or hostname of the remote log server
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(((([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.)*([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.?)|\\.)', 'length': ['1..253']}),], is_leaf=True, yang_name="host", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:host', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """host must be of a type compatible with oc-inet:host""",
          'defined-type': "oc-inet:host",
          'generated-type': """YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(((([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.)*([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.?)|\\.)', 'length': ['1..253']}),], is_leaf=True, yang_name="host", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:host', is_config=True)""",
        })

    self.__host = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_host(self):
    self.__host = YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(((([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.)*([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.?)|\\.)', 'length': ['1..253']}),], is_leaf=True, yang_name="host", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:host', is_config=True)


  def _get_source_address(self):
    """
    Getter method for source_address, mapped from YANG variable /access_points/access_point/system/logging/remote_servers/remote_server/config/source_address (oc-inet:ip-address)

    YANG Description: Source IP address for packets to the log server
    """
    return self.__source_address
      
  def _set_source_address(self, v, load=False):
    """
    Setter method for source_address, mapped from YANG variable /access_points/access_point/system/logging/remote_servers/remote_server/config/source_address (oc-inet:ip-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_source_address is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_source_address() directly.

    YANG Description: Source IP address for packets to the log server
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),], is_leaf=True, yang_name="source-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ip-address', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """source_address must be of a type compatible with oc-inet:ip-address""",
          'defined-type': "oc-inet:ip-address",
          'generated-type': """YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),], is_leaf=True, yang_name="source-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ip-address', is_config=True)""",
        })

    self.__source_address = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_source_address(self):
    self.__source_address = YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),], is_leaf=True, yang_name="source-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ip-address', is_config=True)


  def _get_network_instance(self):
    """
    Getter method for network_instance, mapped from YANG variable /access_points/access_point/system/logging/remote_servers/remote_server/config/network_instance (oc-ni:network-instance-ref)

    YANG Description: The network instance used to reach the log server.  If no
instance is specified, DEFAULT_INSTANCE is used.
    """
    return self.__network_instance
      
  def _set_network_instance(self, v, load=False):
    """
    Setter method for network_instance, mapped from YANG variable /access_points/access_point/system/logging/remote_servers/remote_server/config/network_instance (oc-ni:network-instance-ref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_network_instance is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_network_instance() directly.

    YANG Description: The network instance used to reach the log server.  If no
instance is specified, DEFAULT_INSTANCE is used.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="network-instance", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-ni:network-instance-ref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """network_instance must be of a type compatible with oc-ni:network-instance-ref""",
          'defined-type': "oc-ni:network-instance-ref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="network-instance", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-ni:network-instance-ref', is_config=True)""",
        })

    self.__network_instance = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_network_instance(self):
    self.__network_instance = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="network-instance", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-ni:network-instance-ref', is_config=True)


  def _get_remote_port(self):
    """
    Getter method for remote_port, mapped from YANG variable /access_points/access_point/system/logging/remote_servers/remote_server/config/remote_port (oc-inet:port-number)

    YANG Description: Sets the destination port number for syslog UDP messages to
the server.  The default for syslog is 514.
    """
    return self.__remote_port
      
  def _set_remote_port(self, v, load=False):
    """
    Setter method for remote_port, mapped from YANG variable /access_points/access_point/system/logging/remote_servers/remote_server/config/remote_port (oc-inet:port-number)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_remote_port is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_remote_port() directly.

    YANG Description: Sets the destination port number for syslog UDP messages to
the server.  The default for syslog is 514.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16)(514), is_leaf=True, yang_name="remote-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:port-number', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """remote_port must be of a type compatible with oc-inet:port-number""",
          'defined-type': "oc-inet:port-number",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16)(514), is_leaf=True, yang_name="remote-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:port-number', is_config=True)""",
        })

    self.__remote_port = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_remote_port(self):
    self.__remote_port = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16)(514), is_leaf=True, yang_name="remote-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:port-number', is_config=True)

  host = __builtin__.property(_get_host, _set_host)
  source_address = __builtin__.property(_get_source_address, _set_source_address)
  network_instance = __builtin__.property(_get_network_instance, _set_network_instance)
  remote_port = __builtin__.property(_get_remote_port, _set_remote_port)


  _pyangbind_elements = OrderedDict([('host', host), ('source_address', source_address), ('network_instance', network_instance), ('remote_port', remote_port), ])


class yc_state_openconfig_access_points__access_points_access_point_system_logging_remote_servers_remote_server_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/logging/remote-servers/remote-server/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Operational state data for remote log servers
  """
  __slots__ = ('_path_helper', '_extmethods', '__host','__source_address','__network_instance','__remote_port',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__host = YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(((([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.)*([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.?)|\\.)', 'length': ['1..253']}),], is_leaf=True, yang_name="host", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:host', is_config=False)
    self.__source_address = YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),], is_leaf=True, yang_name="source-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ip-address', is_config=False)
    self.__network_instance = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="network-instance", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-ni:network-instance-ref', is_config=False)
    self.__remote_port = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16)(514), is_leaf=True, yang_name="remote-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:port-number', 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 ['access-points', 'access-point', 'system', 'logging', 'remote-servers', 'remote-server', 'state']

  def _get_host(self):
    """
    Getter method for host, mapped from YANG variable /access_points/access_point/system/logging/remote_servers/remote_server/state/host (oc-inet:host)

    YANG Description: IP address or hostname of the remote log server
    """
    return self.__host
      
  def _set_host(self, v, load=False):
    """
    Setter method for host, mapped from YANG variable /access_points/access_point/system/logging/remote_servers/remote_server/state/host (oc-inet:host)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_host is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_host() directly.

    YANG Description: IP address or hostname of the remote log server
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(((([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.)*([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.?)|\\.)', 'length': ['1..253']}),], is_leaf=True, yang_name="host", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:host', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """host must be of a type compatible with oc-inet:host""",
          'defined-type': "oc-inet:host",
          'generated-type': """YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(((([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.)*([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.?)|\\.)', 'length': ['1..253']}),], is_leaf=True, yang_name="host", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:host', is_config=False)""",
        })

    self.__host = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_host(self):
    self.__host = YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(((([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.)*([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.?)|\\.)', 'length': ['1..253']}),], is_leaf=True, yang_name="host", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:host', is_config=False)


  def _get_source_address(self):
    """
    Getter method for source_address, mapped from YANG variable /access_points/access_point/system/logging/remote_servers/remote_server/state/source_address (oc-inet:ip-address)

    YANG Description: Source IP address for packets to the log server
    """
    return self.__source_address
      
  def _set_source_address(self, v, load=False):
    """
    Setter method for source_address, mapped from YANG variable /access_points/access_point/system/logging/remote_servers/remote_server/state/source_address (oc-inet:ip-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_source_address is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_source_address() directly.

    YANG Description: Source IP address for packets to the log server
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),], is_leaf=True, yang_name="source-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ip-address', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """source_address must be of a type compatible with oc-inet:ip-address""",
          'defined-type': "oc-inet:ip-address",
          'generated-type': """YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),], is_leaf=True, yang_name="source-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ip-address', is_config=False)""",
        })

    self.__source_address = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_source_address(self):
    self.__source_address = YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),], is_leaf=True, yang_name="source-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ip-address', is_config=False)


  def _get_network_instance(self):
    """
    Getter method for network_instance, mapped from YANG variable /access_points/access_point/system/logging/remote_servers/remote_server/state/network_instance (oc-ni:network-instance-ref)

    YANG Description: The network instance used to reach the log server.  If no
instance is specified, DEFAULT_INSTANCE is used.
    """
    return self.__network_instance
      
  def _set_network_instance(self, v, load=False):
    """
    Setter method for network_instance, mapped from YANG variable /access_points/access_point/system/logging/remote_servers/remote_server/state/network_instance (oc-ni:network-instance-ref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_network_instance is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_network_instance() directly.

    YANG Description: The network instance used to reach the log server.  If no
instance is specified, DEFAULT_INSTANCE is used.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="network-instance", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-ni:network-instance-ref', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """network_instance must be of a type compatible with oc-ni:network-instance-ref""",
          'defined-type': "oc-ni:network-instance-ref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="network-instance", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-ni:network-instance-ref', is_config=False)""",
        })

    self.__network_instance = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_network_instance(self):
    self.__network_instance = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="network-instance", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-ni:network-instance-ref', is_config=False)


  def _get_remote_port(self):
    """
    Getter method for remote_port, mapped from YANG variable /access_points/access_point/system/logging/remote_servers/remote_server/state/remote_port (oc-inet:port-number)

    YANG Description: Sets the destination port number for syslog UDP messages to
the server.  The default for syslog is 514.
    """
    return self.__remote_port
      
  def _set_remote_port(self, v, load=False):
    """
    Setter method for remote_port, mapped from YANG variable /access_points/access_point/system/logging/remote_servers/remote_server/state/remote_port (oc-inet:port-number)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_remote_port is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_remote_port() directly.

    YANG Description: Sets the destination port number for syslog UDP messages to
the server.  The default for syslog is 514.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16)(514), is_leaf=True, yang_name="remote-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:port-number', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """remote_port must be of a type compatible with oc-inet:port-number""",
          'defined-type': "oc-inet:port-number",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16)(514), is_leaf=True, yang_name="remote-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:port-number', is_config=False)""",
        })

    self.__remote_port = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_remote_port(self):
    self.__remote_port = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16)(514), is_leaf=True, yang_name="remote-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:port-number', is_config=False)

  host = __builtin__.property(_get_host)
  source_address = __builtin__.property(_get_source_address)
  network_instance = __builtin__.property(_get_network_instance)
  remote_port = __builtin__.property(_get_remote_port)


  _pyangbind_elements = OrderedDict([('host', host), ('source_address', source_address), ('network_instance', network_instance), ('remote_port', remote_port), ])


class yc_config_openconfig_access_points__access_points_access_point_system_logging_remote_servers_remote_server_selectors_selector_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/logging/remote-servers/remote-server/selectors/selector/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Configuration data 
  """
  __slots__ = ('_path_helper', '_extmethods', '__facility','__severity',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__facility = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'ALL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:ALL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'KERNEL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:KERNEL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'USER': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:USER': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'MAIL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:MAIL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'SYSTEM_DAEMON': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:SYSTEM_DAEMON': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'AUTH': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:AUTH': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'SYSLOG': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:SYSLOG': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'AUTHPRIV': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:AUTHPRIV': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'NTP': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:NTP': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'AUDIT': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:AUDIT': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'CONSOLE': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:CONSOLE': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL0': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL0': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL1': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL1': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL2': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL2': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL3': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL3': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL4': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL4': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL5': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL5': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL6': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL6': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL7': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL7': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}},), is_leaf=True, yang_name="facility", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=True)
    self.__severity = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'EMERGENCY': {}, 'ALERT': {}, 'CRITICAL': {}, 'ERROR': {}, 'WARNING': {}, 'NOTICE': {}, 'INFORMATIONAL': {}, 'DEBUG': {}},), is_leaf=True, yang_name="severity", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='syslog-severity', is_config=True)

    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 ['access-points', 'access-point', 'system', 'logging', 'remote-servers', 'remote-server', 'selectors', 'selector', 'config']

  def _get_facility(self):
    """
    Getter method for facility, mapped from YANG variable /access_points/access_point/system/logging/remote_servers/remote_server/selectors/selector/config/facility (identityref)

    YANG Description: Specifies the facility, or class of messages to log
    """
    return self.__facility
      
  def _set_facility(self, v, load=False):
    """
    Setter method for facility, mapped from YANG variable /access_points/access_point/system/logging/remote_servers/remote_server/selectors/selector/config/facility (identityref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_facility is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_facility() directly.

    YANG Description: Specifies the facility, or class of messages to log
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'ALL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:ALL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'KERNEL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:KERNEL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'USER': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:USER': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'MAIL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:MAIL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'SYSTEM_DAEMON': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:SYSTEM_DAEMON': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'AUTH': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:AUTH': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'SYSLOG': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:SYSLOG': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'AUTHPRIV': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:AUTHPRIV': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'NTP': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:NTP': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'AUDIT': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:AUDIT': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'CONSOLE': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:CONSOLE': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL0': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL0': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL1': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL1': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL2': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL2': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL3': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL3': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL4': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL4': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL5': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL5': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL6': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL6': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL7': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL7': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}},), is_leaf=True, yang_name="facility", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """facility must be of a type compatible with identityref""",
          'defined-type': "openconfig-access-points:identityref",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'ALL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:ALL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'KERNEL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:KERNEL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'USER': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:USER': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'MAIL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:MAIL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'SYSTEM_DAEMON': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:SYSTEM_DAEMON': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'AUTH': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:AUTH': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'SYSLOG': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:SYSLOG': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'AUTHPRIV': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:AUTHPRIV': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'NTP': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:NTP': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'AUDIT': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:AUDIT': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'CONSOLE': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:CONSOLE': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL0': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL0': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL1': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL1': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL2': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL2': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL3': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL3': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL4': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL4': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL5': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL5': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL6': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL6': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL7': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL7': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}},), is_leaf=True, yang_name="facility", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=True)""",
        })

    self.__facility = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_facility(self):
    self.__facility = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'ALL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:ALL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'KERNEL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:KERNEL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'USER': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:USER': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'MAIL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:MAIL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'SYSTEM_DAEMON': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:SYSTEM_DAEMON': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'AUTH': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:AUTH': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'SYSLOG': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:SYSLOG': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'AUTHPRIV': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:AUTHPRIV': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'NTP': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:NTP': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'AUDIT': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:AUDIT': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'CONSOLE': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:CONSOLE': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL0': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL0': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL1': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL1': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL2': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL2': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL3': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL3': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL4': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL4': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL5': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL5': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL6': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL6': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL7': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL7': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}},), is_leaf=True, yang_name="facility", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=True)


  def _get_severity(self):
    """
    Getter method for severity, mapped from YANG variable /access_points/access_point/system/logging/remote_servers/remote_server/selectors/selector/config/severity (syslog-severity)

    YANG Description: Specifies that only messages of the given severity (or
greater severity) for the corresonding facility are logged
    """
    return self.__severity
      
  def _set_severity(self, v, load=False):
    """
    Setter method for severity, mapped from YANG variable /access_points/access_point/system/logging/remote_servers/remote_server/selectors/selector/config/severity (syslog-severity)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_severity is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_severity() directly.

    YANG Description: Specifies that only messages of the given severity (or
greater severity) for the corresonding facility are logged
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'EMERGENCY': {}, 'ALERT': {}, 'CRITICAL': {}, 'ERROR': {}, 'WARNING': {}, 'NOTICE': {}, 'INFORMATIONAL': {}, 'DEBUG': {}},), is_leaf=True, yang_name="severity", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='syslog-severity', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """severity must be of a type compatible with syslog-severity""",
          'defined-type': "openconfig-access-points:syslog-severity",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'EMERGENCY': {}, 'ALERT': {}, 'CRITICAL': {}, 'ERROR': {}, 'WARNING': {}, 'NOTICE': {}, 'INFORMATIONAL': {}, 'DEBUG': {}},), is_leaf=True, yang_name="severity", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='syslog-severity', is_config=True)""",
        })

    self.__severity = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_severity(self):
    self.__severity = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'EMERGENCY': {}, 'ALERT': {}, 'CRITICAL': {}, 'ERROR': {}, 'WARNING': {}, 'NOTICE': {}, 'INFORMATIONAL': {}, 'DEBUG': {}},), is_leaf=True, yang_name="severity", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='syslog-severity', is_config=True)

  facility = __builtin__.property(_get_facility, _set_facility)
  severity = __builtin__.property(_get_severity, _set_severity)


  _pyangbind_elements = OrderedDict([('facility', facility), ('severity', severity), ])


class yc_state_openconfig_access_points__access_points_access_point_system_logging_remote_servers_remote_server_selectors_selector_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/logging/remote-servers/remote-server/selectors/selector/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Operational state data 
  """
  __slots__ = ('_path_helper', '_extmethods', '__facility','__severity',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__facility = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'ALL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:ALL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'KERNEL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:KERNEL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'USER': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:USER': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'MAIL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:MAIL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'SYSTEM_DAEMON': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:SYSTEM_DAEMON': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'AUTH': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:AUTH': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'SYSLOG': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:SYSLOG': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'AUTHPRIV': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:AUTHPRIV': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'NTP': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:NTP': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'AUDIT': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:AUDIT': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'CONSOLE': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:CONSOLE': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL0': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL0': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL1': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL1': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL2': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL2': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL3': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL3': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL4': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL4': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL5': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL5': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL6': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL6': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL7': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL7': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}},), is_leaf=True, yang_name="facility", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)
    self.__severity = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'EMERGENCY': {}, 'ALERT': {}, 'CRITICAL': {}, 'ERROR': {}, 'WARNING': {}, 'NOTICE': {}, 'INFORMATIONAL': {}, 'DEBUG': {}},), is_leaf=True, yang_name="severity", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='syslog-severity', 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 ['access-points', 'access-point', 'system', 'logging', 'remote-servers', 'remote-server', 'selectors', 'selector', 'state']

  def _get_facility(self):
    """
    Getter method for facility, mapped from YANG variable /access_points/access_point/system/logging/remote_servers/remote_server/selectors/selector/state/facility (identityref)

    YANG Description: Specifies the facility, or class of messages to log
    """
    return self.__facility
      
  def _set_facility(self, v, load=False):
    """
    Setter method for facility, mapped from YANG variable /access_points/access_point/system/logging/remote_servers/remote_server/selectors/selector/state/facility (identityref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_facility is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_facility() directly.

    YANG Description: Specifies the facility, or class of messages to log
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'ALL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:ALL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'KERNEL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:KERNEL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'USER': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:USER': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'MAIL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:MAIL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'SYSTEM_DAEMON': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:SYSTEM_DAEMON': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'AUTH': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:AUTH': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'SYSLOG': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:SYSLOG': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'AUTHPRIV': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:AUTHPRIV': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'NTP': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:NTP': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'AUDIT': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:AUDIT': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'CONSOLE': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:CONSOLE': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL0': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL0': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL1': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL1': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL2': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL2': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL3': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL3': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL4': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL4': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL5': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL5': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL6': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL6': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL7': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL7': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}},), is_leaf=True, yang_name="facility", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """facility must be of a type compatible with identityref""",
          'defined-type': "openconfig-access-points:identityref",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'ALL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:ALL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'KERNEL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:KERNEL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'USER': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:USER': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'MAIL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:MAIL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'SYSTEM_DAEMON': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:SYSTEM_DAEMON': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'AUTH': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:AUTH': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'SYSLOG': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:SYSLOG': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'AUTHPRIV': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:AUTHPRIV': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'NTP': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:NTP': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'AUDIT': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:AUDIT': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'CONSOLE': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:CONSOLE': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL0': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL0': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL1': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL1': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL2': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL2': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL3': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL3': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL4': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL4': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL5': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL5': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL6': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL6': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL7': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL7': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}},), is_leaf=True, yang_name="facility", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)""",
        })

    self.__facility = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_facility(self):
    self.__facility = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'ALL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:ALL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'KERNEL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:KERNEL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'USER': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:USER': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'MAIL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:MAIL': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'SYSTEM_DAEMON': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:SYSTEM_DAEMON': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'AUTH': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:AUTH': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'SYSLOG': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:SYSLOG': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'AUTHPRIV': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:AUTHPRIV': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'NTP': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:NTP': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'AUDIT': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:AUDIT': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'CONSOLE': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:CONSOLE': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL0': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL0': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL1': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL1': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL2': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL2': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL3': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL3': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL4': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL4': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL5': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL5': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL6': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL6': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'LOCAL7': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}, 'oc-log:LOCAL7': {'@module': 'openconfig-system-logging', '@namespace': 'http://openconfig.net/yang/system/logging'}},), is_leaf=True, yang_name="facility", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)


  def _get_severity(self):
    """
    Getter method for severity, mapped from YANG variable /access_points/access_point/system/logging/remote_servers/remote_server/selectors/selector/state/severity (syslog-severity)

    YANG Description: Specifies that only messages of the given severity (or
greater severity) for the corresonding facility are logged
    """
    return self.__severity
      
  def _set_severity(self, v, load=False):
    """
    Setter method for severity, mapped from YANG variable /access_points/access_point/system/logging/remote_servers/remote_server/selectors/selector/state/severity (syslog-severity)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_severity is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_severity() directly.

    YANG Description: Specifies that only messages of the given severity (or
greater severity) for the corresonding facility are logged
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'EMERGENCY': {}, 'ALERT': {}, 'CRITICAL': {}, 'ERROR': {}, 'WARNING': {}, 'NOTICE': {}, 'INFORMATIONAL': {}, 'DEBUG': {}},), is_leaf=True, yang_name="severity", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='syslog-severity', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """severity must be of a type compatible with syslog-severity""",
          'defined-type': "openconfig-access-points:syslog-severity",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'EMERGENCY': {}, 'ALERT': {}, 'CRITICAL': {}, 'ERROR': {}, 'WARNING': {}, 'NOTICE': {}, 'INFORMATIONAL': {}, 'DEBUG': {}},), is_leaf=True, yang_name="severity", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='syslog-severity', is_config=False)""",
        })

    self.__severity = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_severity(self):
    self.__severity = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'EMERGENCY': {}, 'ALERT': {}, 'CRITICAL': {}, 'ERROR': {}, 'WARNING': {}, 'NOTICE': {}, 'INFORMATIONAL': {}, 'DEBUG': {}},), is_leaf=True, yang_name="severity", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='syslog-severity', is_config=False)

  facility = __builtin__.property(_get_facility)
  severity = __builtin__.property(_get_severity)


  _pyangbind_elements = OrderedDict([('facility', facility), ('severity', severity), ])


class yc_selector_openconfig_access_points__access_points_access_point_system_logging_remote_servers_remote_server_selectors_selector(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/logging/remote-servers/remote-server/selectors/selector. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: List of selectors for log messages
  """
  __slots__ = ('_path_helper', '_extmethods', '__facility','__severity','__config','__state',)

  _yang_name = 'selector'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__facility = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="facility", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)
    self.__severity = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="severity", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_logging_remote_servers_remote_server_selectors_selector_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_logging_remote_servers_remote_server_selectors_selector_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'system', 'logging', 'remote-servers', 'remote-server', 'selectors', 'selector']

  def _get_facility(self):
    """
    Getter method for facility, mapped from YANG variable /access_points/access_point/system/logging/remote_servers/remote_server/selectors/selector/facility (leafref)

    YANG Description: Reference to facility list key
    """
    return self.__facility
      
  def _set_facility(self, v, load=False):
    """
    Setter method for facility, mapped from YANG variable /access_points/access_point/system/logging/remote_servers/remote_server/selectors/selector/facility (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_facility is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_facility() directly.

    YANG Description: Reference to facility list key
    """
    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="facility", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """facility must be of a type compatible with leafref""",
          'defined-type': "leafref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="facility", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)""",
        })

    self.__facility = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_facility(self):
    self.__facility = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="facility", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)


  def _get_severity(self):
    """
    Getter method for severity, mapped from YANG variable /access_points/access_point/system/logging/remote_servers/remote_server/selectors/selector/severity (leafref)

    YANG Description: Reference to severity list key
    """
    return self.__severity
      
  def _set_severity(self, v, load=False):
    """
    Setter method for severity, mapped from YANG variable /access_points/access_point/system/logging/remote_servers/remote_server/selectors/selector/severity (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_severity is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_severity() directly.

    YANG Description: Reference to severity list key
    """
    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="severity", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """severity must be of a type compatible with leafref""",
          'defined-type': "leafref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="severity", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)""",
        })

    self.__severity = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_severity(self):
    self.__severity = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="severity", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)


  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/system/logging/remote_servers/remote_server/selectors/selector/config (container)

    YANG Description: Configuration data 
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/system/logging/remote_servers/remote_server/selectors/selector/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Configuration data 
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_access_points__access_points_access_point_system_logging_remote_servers_remote_server_selectors_selector_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_logging_remote_servers_remote_server_selectors_selector_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_logging_remote_servers_remote_server_selectors_selector_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/system/logging/remote_servers/remote_server/selectors/selector/state (container)

    YANG Description: Operational state data 
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/system/logging/remote_servers/remote_server/selectors/selector/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: Operational state data 
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_system_logging_remote_servers_remote_server_selectors_selector_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_logging_remote_servers_remote_server_selectors_selector_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_logging_remote_servers_remote_server_selectors_selector_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

  facility = __builtin__.property(_get_facility, _set_facility)
  severity = __builtin__.property(_get_severity, _set_severity)
  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)


  _pyangbind_elements = OrderedDict([('facility', facility), ('severity', severity), ('config', config), ('state', state), ])


class yc_selectors_openconfig_access_points__access_points_access_point_system_logging_remote_servers_remote_server_selectors(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/logging/remote-servers/remote-server/selectors. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Enclosing container 
  """
  __slots__ = ('_path_helper', '_extmethods', '__selector',)

  _yang_name = 'selectors'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__selector = YANGDynClass(base=YANGListType("facility severity",yc_selector_openconfig_access_points__access_points_access_point_system_logging_remote_servers_remote_server_selectors_selector, yang_name="selector", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='facility severity', extensions=None), is_container='list', yang_name="selector", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)

    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 ['access-points', 'access-point', 'system', 'logging', 'remote-servers', 'remote-server', 'selectors']

  def _get_selector(self):
    """
    Getter method for selector, mapped from YANG variable /access_points/access_point/system/logging/remote_servers/remote_server/selectors/selector (list)

    YANG Description: List of selectors for log messages
    """
    return self.__selector
      
  def _set_selector(self, v, load=False):
    """
    Setter method for selector, mapped from YANG variable /access_points/access_point/system/logging/remote_servers/remote_server/selectors/selector (list)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_selector is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_selector() directly.

    YANG Description: List of selectors for log messages
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGListType("facility severity",yc_selector_openconfig_access_points__access_points_access_point_system_logging_remote_servers_remote_server_selectors_selector, yang_name="selector", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='facility severity', extensions=None), is_container='list', yang_name="selector", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """selector must be of a type compatible with list""",
          'defined-type': "list",
          'generated-type': """YANGDynClass(base=YANGListType("facility severity",yc_selector_openconfig_access_points__access_points_access_point_system_logging_remote_servers_remote_server_selectors_selector, yang_name="selector", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='facility severity', extensions=None), is_container='list', yang_name="selector", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)""",
        })

    self.__selector = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_selector(self):
    self.__selector = YANGDynClass(base=YANGListType("facility severity",yc_selector_openconfig_access_points__access_points_access_point_system_logging_remote_servers_remote_server_selectors_selector, yang_name="selector", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='facility severity', extensions=None), is_container='list', yang_name="selector", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)

  selector = __builtin__.property(_get_selector, _set_selector)


  _pyangbind_elements = OrderedDict([('selector', selector), ])


class yc_remote_server_openconfig_access_points__access_points_access_point_system_logging_remote_servers_remote_server(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/logging/remote-servers/remote-server. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: List of remote log servers
  """
  __slots__ = ('_path_helper', '_extmethods', '__host','__config','__state','__selectors',)

  _yang_name = 'remote-server'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__host = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="host", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_logging_remote_servers_remote_server_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_logging_remote_servers_remote_server_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__selectors = YANGDynClass(base=yc_selectors_openconfig_access_points__access_points_access_point_system_logging_remote_servers_remote_server_selectors, is_container='container', yang_name="selectors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'system', 'logging', 'remote-servers', 'remote-server']

  def _get_host(self):
    """
    Getter method for host, mapped from YANG variable /access_points/access_point/system/logging/remote_servers/remote_server/host (leafref)

    YANG Description: Reference to the host list key
    """
    return self.__host
      
  def _set_host(self, v, load=False):
    """
    Setter method for host, mapped from YANG variable /access_points/access_point/system/logging/remote_servers/remote_server/host (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_host is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_host() directly.

    YANG Description: Reference to the host list key
    """
    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="host", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """host must be of a type compatible with leafref""",
          'defined-type': "leafref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="host", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)""",
        })

    self.__host = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_host(self):
    self.__host = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="host", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)


  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/system/logging/remote_servers/remote_server/config (container)

    YANG Description: Configuration data for remote log servers
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/system/logging/remote_servers/remote_server/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Configuration data for remote log servers
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_access_points__access_points_access_point_system_logging_remote_servers_remote_server_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_logging_remote_servers_remote_server_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_logging_remote_servers_remote_server_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/system/logging/remote_servers/remote_server/state (container)

    YANG Description: Operational state data for remote log servers
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/system/logging/remote_servers/remote_server/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: Operational state data for remote log servers
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_system_logging_remote_servers_remote_server_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_logging_remote_servers_remote_server_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_logging_remote_servers_remote_server_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_selectors(self):
    """
    Getter method for selectors, mapped from YANG variable /access_points/access_point/system/logging/remote_servers/remote_server/selectors (container)

    YANG Description: Enclosing container 
    """
    return self.__selectors
      
  def _set_selectors(self, v, load=False):
    """
    Setter method for selectors, mapped from YANG variable /access_points/access_point/system/logging/remote_servers/remote_server/selectors (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_selectors is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_selectors() directly.

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

    self.__selectors = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_selectors(self):
    self.__selectors = YANGDynClass(base=yc_selectors_openconfig_access_points__access_points_access_point_system_logging_remote_servers_remote_server_selectors, is_container='container', yang_name="selectors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

  host = __builtin__.property(_get_host, _set_host)
  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)
  selectors = __builtin__.property(_get_selectors, _set_selectors)


  _pyangbind_elements = OrderedDict([('host', host), ('config', config), ('state', state), ('selectors', selectors), ])


class yc_remote_servers_openconfig_access_points__access_points_access_point_system_logging_remote_servers(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/logging/remote-servers. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Enclosing container for the list of remote log servers
  """
  __slots__ = ('_path_helper', '_extmethods', '__remote_server',)

  _yang_name = 'remote-servers'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__remote_server = YANGDynClass(base=YANGListType("host",yc_remote_server_openconfig_access_points__access_points_access_point_system_logging_remote_servers_remote_server, yang_name="remote-server", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='host', extensions=None), is_container='list', yang_name="remote-server", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)

    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 ['access-points', 'access-point', 'system', 'logging', 'remote-servers']

  def _get_remote_server(self):
    """
    Getter method for remote_server, mapped from YANG variable /access_points/access_point/system/logging/remote_servers/remote_server (list)

    YANG Description: List of remote log servers
    """
    return self.__remote_server
      
  def _set_remote_server(self, v, load=False):
    """
    Setter method for remote_server, mapped from YANG variable /access_points/access_point/system/logging/remote_servers/remote_server (list)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_remote_server is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_remote_server() directly.

    YANG Description: List of remote log servers
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGListType("host",yc_remote_server_openconfig_access_points__access_points_access_point_system_logging_remote_servers_remote_server, yang_name="remote-server", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='host', extensions=None), is_container='list', yang_name="remote-server", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """remote_server must be of a type compatible with list""",
          'defined-type': "list",
          'generated-type': """YANGDynClass(base=YANGListType("host",yc_remote_server_openconfig_access_points__access_points_access_point_system_logging_remote_servers_remote_server, yang_name="remote-server", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='host', extensions=None), is_container='list', yang_name="remote-server", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)""",
        })

    self.__remote_server = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_remote_server(self):
    self.__remote_server = YANGDynClass(base=YANGListType("host",yc_remote_server_openconfig_access_points__access_points_access_point_system_logging_remote_servers_remote_server, yang_name="remote-server", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='host', extensions=None), is_container='list', yang_name="remote-server", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)

  remote_server = __builtin__.property(_get_remote_server, _set_remote_server)


  _pyangbind_elements = OrderedDict([('remote_server', remote_server), ])


class yc_logging_openconfig_access_points__access_points_access_point_system_logging(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/logging. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Top-level container for data related to logging / syslog
  """
  __slots__ = ('_path_helper', '_extmethods', '__console','__remote_servers',)

  _yang_name = 'logging'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__console = YANGDynClass(base=yc_console_openconfig_access_points__access_points_access_point_system_logging_console, is_container='container', yang_name="console", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__remote_servers = YANGDynClass(base=yc_remote_servers_openconfig_access_points__access_points_access_point_system_logging_remote_servers, is_container='container', yang_name="remote-servers", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'system', 'logging']

  def _get_console(self):
    """
    Getter method for console, mapped from YANG variable /access_points/access_point/system/logging/console (container)

    YANG Description: Top-level container for data related to console-based
logging
    """
    return self.__console
      
  def _set_console(self, v, load=False):
    """
    Setter method for console, mapped from YANG variable /access_points/access_point/system/logging/console (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_console is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_console() directly.

    YANG Description: Top-level container for data related to console-based
logging
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_console_openconfig_access_points__access_points_access_point_system_logging_console, is_container='container', yang_name="console", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """console must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_console_openconfig_access_points__access_points_access_point_system_logging_console, is_container='container', yang_name="console", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__console = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_console(self):
    self.__console = YANGDynClass(base=yc_console_openconfig_access_points__access_points_access_point_system_logging_console, is_container='container', yang_name="console", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_remote_servers(self):
    """
    Getter method for remote_servers, mapped from YANG variable /access_points/access_point/system/logging/remote_servers (container)

    YANG Description: Enclosing container for the list of remote log servers
    """
    return self.__remote_servers
      
  def _set_remote_servers(self, v, load=False):
    """
    Setter method for remote_servers, mapped from YANG variable /access_points/access_point/system/logging/remote_servers (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_remote_servers is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_remote_servers() directly.

    YANG Description: Enclosing container for the list of remote log servers
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_remote_servers_openconfig_access_points__access_points_access_point_system_logging_remote_servers, is_container='container', yang_name="remote-servers", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """remote_servers must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_remote_servers_openconfig_access_points__access_points_access_point_system_logging_remote_servers, is_container='container', yang_name="remote-servers", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__remote_servers = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_remote_servers(self):
    self.__remote_servers = YANGDynClass(base=yc_remote_servers_openconfig_access_points__access_points_access_point_system_logging_remote_servers, is_container='container', yang_name="remote-servers", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

  console = __builtin__.property(_get_console, _set_console)
  remote_servers = __builtin__.property(_get_remote_servers, _set_remote_servers)


  _pyangbind_elements = OrderedDict([('console', console), ('remote_servers', remote_servers), ])


class yc_state_openconfig_access_points__access_points_access_point_system_processes_process_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/processes/process/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: State parameters related to monitored processes
  """
  __slots__ = ('_path_helper', '_extmethods', '__pid','__name','__args','__start_time','__cpu_usage_user','__cpu_usage_system','__cpu_utilization','__memory_usage','__memory_utilization',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__pid = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="pid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint64', is_config=False)
    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)
    self.__args = YANGDynClass(unique=True, base=TypedListType(allowed_type=six.text_type), is_leaf=False, yang_name="args", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)
    self.__start_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="start-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)
    self.__cpu_usage_user = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="cpu-usage-user", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__cpu_usage_system = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="cpu-usage-system", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    self.__cpu_utilization = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="cpu-utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    self.__memory_usage = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="memory-usage", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint64', is_config=False)
    self.__memory_utilization = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="memory-utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', 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 ['access-points', 'access-point', 'system', 'processes', 'process', 'state']

  def _get_pid(self):
    """
    Getter method for pid, mapped from YANG variable /access_points/access_point/system/processes/process/state/pid (uint64)

    YANG Description: The process pid
    """
    return self.__pid
      
  def _set_pid(self, v, load=False):
    """
    Setter method for pid, mapped from YANG variable /access_points/access_point/system/processes/process/state/pid (uint64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_pid is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_pid() directly.

    YANG Description: The process pid
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="pid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """pid must be of a type compatible with uint64""",
          'defined-type': "uint64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="pid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint64', is_config=False)""",
        })

    self.__pid = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_pid(self):
    self.__pid = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="pid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint64', is_config=False)


  def _get_name(self):
    """
    Getter method for name, mapped from YANG variable /access_points/access_point/system/processes/process/state/name (string)

    YANG Description: The process name
    """
    return self.__name
      
  def _set_name(self, v, load=False):
    """
    Setter method for name, mapped from YANG variable /access_points/access_point/system/processes/process/state/name (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_name is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_name() directly.

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

    self.__name = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_name(self):
    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)


  def _get_args(self):
    """
    Getter method for args, mapped from YANG variable /access_points/access_point/system/processes/process/state/args (string)

    YANG Description: Current process command line arguments.  Arguments with
a parameter (e.g., --option 10  or -option=10) should be
represented as a single element of the list with the
argument name and parameter together.  Flag arguments, i.e.,
those without a parameter should also be in their own list
element.
    """
    return self.__args
      
  def _set_args(self, v, load=False):
    """
    Setter method for args, mapped from YANG variable /access_points/access_point/system/processes/process/state/args (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_args is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_args() directly.

    YANG Description: Current process command line arguments.  Arguments with
a parameter (e.g., --option 10  or -option=10) should be
represented as a single element of the list with the
argument name and parameter together.  Flag arguments, i.e.,
those without a parameter should also be in their own list
element.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=six.text_type), is_leaf=False, yang_name="args", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """args must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=six.text_type), is_leaf=False, yang_name="args", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)""",
        })

    self.__args = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_args(self):
    self.__args = YANGDynClass(unique=True, base=TypedListType(allowed_type=six.text_type), is_leaf=False, yang_name="args", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)


  def _get_start_time(self):
    """
    Getter method for start_time, mapped from YANG variable /access_points/access_point/system/processes/process/state/start_time (oc-types:timeticks64)

    YANG Description: The time at which this process started,
relative to the UNIX epoch.  The system must be
synchronized such that the start-time can be
reported accurately, otherwise it should not be reported.
    """
    return self.__start_time
      
  def _set_start_time(self, v, load=False):
    """
    Setter method for start_time, mapped from YANG variable /access_points/access_point/system/processes/process/state/start_time (oc-types:timeticks64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_start_time is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_start_time() directly.

    YANG Description: The time at which this process started,
relative to the UNIX epoch.  The system must be
synchronized such that the start-time can be
reported accurately, otherwise it should not be reported.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="start-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """start_time must be of a type compatible with oc-types:timeticks64""",
          'defined-type': "oc-types:timeticks64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="start-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)""",
        })

    self.__start_time = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_start_time(self):
    self.__start_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="start-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)


  def _get_cpu_usage_user(self):
    """
    Getter method for cpu_usage_user, mapped from YANG variable /access_points/access_point/system/processes/process/state/cpu_usage_user (oc-yang:counter64)

    YANG Description: CPU time consumed by this process in user mode in
nanoseconds.
    """
    return self.__cpu_usage_user
      
  def _set_cpu_usage_user(self, v, load=False):
    """
    Setter method for cpu_usage_user, mapped from YANG variable /access_points/access_point/system/processes/process/state/cpu_usage_user (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_cpu_usage_user is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_cpu_usage_user() directly.

    YANG Description: CPU time consumed by this process in user mode in
nanoseconds.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="cpu-usage-user", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """cpu_usage_user must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="cpu-usage-user", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__cpu_usage_user = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_cpu_usage_user(self):
    self.__cpu_usage_user = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="cpu-usage-user", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_cpu_usage_system(self):
    """
    Getter method for cpu_usage_system, mapped from YANG variable /access_points/access_point/system/processes/process/state/cpu_usage_system (oc-yang:counter64)

    YANG Description: CPU time consumed by this process in kernel mode.
    """
    return self.__cpu_usage_system
      
  def _set_cpu_usage_system(self, v, load=False):
    """
    Setter method for cpu_usage_system, mapped from YANG variable /access_points/access_point/system/processes/process/state/cpu_usage_system (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_cpu_usage_system is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_cpu_usage_system() directly.

    YANG Description: CPU time consumed by this process in kernel mode.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="cpu-usage-system", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """cpu_usage_system must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="cpu-usage-system", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__cpu_usage_system = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_cpu_usage_system(self):
    self.__cpu_usage_system = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="cpu-usage-system", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)


  def _get_cpu_utilization(self):
    """
    Getter method for cpu_utilization, mapped from YANG variable /access_points/access_point/system/processes/process/state/cpu_utilization (oc-types:percentage)

    YANG Description: The percentage of CPU that is being used by the process.
    """
    return self.__cpu_utilization
      
  def _set_cpu_utilization(self, v, load=False):
    """
    Setter method for cpu_utilization, mapped from YANG variable /access_points/access_point/system/processes/process/state/cpu_utilization (oc-types:percentage)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_cpu_utilization is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_cpu_utilization() directly.

    YANG Description: The percentage of CPU that is being used by the process.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="cpu-utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """cpu_utilization must be of a type compatible with oc-types:percentage""",
          'defined-type': "oc-types:percentage",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="cpu-utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)""",
        })

    self.__cpu_utilization = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_cpu_utilization(self):
    self.__cpu_utilization = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="cpu-utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)


  def _get_memory_usage(self):
    """
    Getter method for memory_usage, mapped from YANG variable /access_points/access_point/system/processes/process/state/memory_usage (uint64)

    YANG Description: Bytes allocated and still in use by the process
    """
    return self.__memory_usage
      
  def _set_memory_usage(self, v, load=False):
    """
    Setter method for memory_usage, mapped from YANG variable /access_points/access_point/system/processes/process/state/memory_usage (uint64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_memory_usage is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_memory_usage() directly.

    YANG Description: Bytes allocated and still in use by the process
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="memory-usage", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """memory_usage must be of a type compatible with uint64""",
          'defined-type': "uint64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="memory-usage", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint64', is_config=False)""",
        })

    self.__memory_usage = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_memory_usage(self):
    self.__memory_usage = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="memory-usage", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint64', is_config=False)


  def _get_memory_utilization(self):
    """
    Getter method for memory_utilization, mapped from YANG variable /access_points/access_point/system/processes/process/state/memory_utilization (oc-types:percentage)

    YANG Description: The percentage of RAM that is being used by the process.
    """
    return self.__memory_utilization
      
  def _set_memory_utilization(self, v, load=False):
    """
    Setter method for memory_utilization, mapped from YANG variable /access_points/access_point/system/processes/process/state/memory_utilization (oc-types:percentage)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_memory_utilization is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_memory_utilization() directly.

    YANG Description: The percentage of RAM that is being used by the process.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="memory-utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """memory_utilization must be of a type compatible with oc-types:percentage""",
          'defined-type': "oc-types:percentage",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="memory-utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)""",
        })

    self.__memory_utilization = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_memory_utilization(self):
    self.__memory_utilization = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="memory-utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)

  pid = __builtin__.property(_get_pid)
  name = __builtin__.property(_get_name)
  args = __builtin__.property(_get_args)
  start_time = __builtin__.property(_get_start_time)
  cpu_usage_user = __builtin__.property(_get_cpu_usage_user)
  cpu_usage_system = __builtin__.property(_get_cpu_usage_system)
  cpu_utilization = __builtin__.property(_get_cpu_utilization)
  memory_usage = __builtin__.property(_get_memory_usage)
  memory_utilization = __builtin__.property(_get_memory_utilization)


  _pyangbind_elements = OrderedDict([('pid', pid), ('name', name), ('args', args), ('start_time', start_time), ('cpu_usage_user', cpu_usage_user), ('cpu_usage_system', cpu_usage_system), ('cpu_utilization', cpu_utilization), ('memory_usage', memory_usage), ('memory_utilization', memory_utilization), ])


class yc_process_openconfig_access_points__access_points_access_point_system_processes_process(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/processes/process. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: List of monitored processes
  """
  __slots__ = ('_path_helper', '_extmethods', '__pid','__state',)

  _yang_name = 'process'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__pid = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="pid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=False)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_processes_process_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/wifi/access-points', defining_module='openconfig-access-points', 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 ['access-points', 'access-point', 'system', 'processes', 'process']

  def _get_pid(self):
    """
    Getter method for pid, mapped from YANG variable /access_points/access_point/system/processes/process/pid (leafref)

    YANG Description: Reference to the process pid key
    """
    return self.__pid
      
  def _set_pid(self, v, load=False):
    """
    Setter method for pid, mapped from YANG variable /access_points/access_point/system/processes/process/pid (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_pid is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_pid() directly.

    YANG Description: Reference to the process pid key
    """
    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="pid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """pid must be of a type compatible with leafref""",
          'defined-type': "leafref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="pid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=False)""",
        })

    self.__pid = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_pid(self):
    self.__pid = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="pid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=False)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/system/processes/process/state (container)

    YANG Description: State parameters related to monitored processes
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/system/processes/process/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 related to monitored processes
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_system_processes_process_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/wifi/access-points', defining_module='openconfig-access-points', 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=yc_state_openconfig_access_points__access_points_access_point_system_processes_process_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_processes_process_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)

  pid = __builtin__.property(_get_pid)
  state = __builtin__.property(_get_state)


  _pyangbind_elements = OrderedDict([('pid', pid), ('state', state), ])


class yc_processes_openconfig_access_points__access_points_access_point_system_processes(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/processes. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Parameters related to all monitored processes
  """
  __slots__ = ('_path_helper', '_extmethods', '__process',)

  _yang_name = 'processes'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__process = YANGDynClass(base=YANGListType("pid",yc_process_openconfig_access_points__access_points_access_point_system_processes_process, yang_name="process", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='pid', extensions=None), is_container='list', yang_name="process", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)

    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 ['access-points', 'access-point', 'system', 'processes']

  def _get_process(self):
    """
    Getter method for process, mapped from YANG variable /access_points/access_point/system/processes/process (list)

    YANG Description: List of monitored processes
    """
    return self.__process
      
  def _set_process(self, v, load=False):
    """
    Setter method for process, mapped from YANG variable /access_points/access_point/system/processes/process (list)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_process is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_process() directly.

    YANG Description: List of monitored processes
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGListType("pid",yc_process_openconfig_access_points__access_points_access_point_system_processes_process, yang_name="process", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='pid', extensions=None), is_container='list', yang_name="process", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """process must be of a type compatible with list""",
          'defined-type': "list",
          'generated-type': """YANGDynClass(base=YANGListType("pid",yc_process_openconfig_access_points__access_points_access_point_system_processes_process, yang_name="process", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='pid', extensions=None), is_container='list', yang_name="process", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)""",
        })

    self.__process = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_process(self):
    self.__process = YANGDynClass(base=YANGListType("pid",yc_process_openconfig_access_points__access_points_access_point_system_processes_process, yang_name="process", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='pid', extensions=None), is_container='list', yang_name="process", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)

  process = __builtin__.property(_get_process, _set_process)


  _pyangbind_elements = OrderedDict([('process', process), ])


class yc_config_openconfig_access_points__access_points_access_point_system_messages_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/messages/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Configuration data for Syslog messages.
  """
  __slots__ = ('_path_helper', '_extmethods', '__severity',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__severity = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'EMERGENCY': {}, 'ALERT': {}, 'CRITICAL': {}, 'ERROR': {}, 'WARNING': {}, 'NOTICE': {}, 'INFORMATIONAL': {}, 'DEBUG': {}},), is_leaf=True, yang_name="severity", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-log:syslog-severity', is_config=True)

    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 ['access-points', 'access-point', 'system', 'messages', 'config']

  def _get_severity(self):
    """
    Getter method for severity, mapped from YANG variable /access_points/access_point/system/messages/config/severity (oc-log:syslog-severity)

    YANG Description: Specifies that only messages of the given severity (or
greater severity) are sent over the RPC.

This is analogous to differentiating which severity is to be
sent to legacy Syslog servers, as opposed to local buffer or
files.
    """
    return self.__severity
      
  def _set_severity(self, v, load=False):
    """
    Setter method for severity, mapped from YANG variable /access_points/access_point/system/messages/config/severity (oc-log:syslog-severity)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_severity is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_severity() directly.

    YANG Description: Specifies that only messages of the given severity (or
greater severity) are sent over the RPC.

This is analogous to differentiating which severity is to be
sent to legacy Syslog servers, as opposed to local buffer or
files.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'EMERGENCY': {}, 'ALERT': {}, 'CRITICAL': {}, 'ERROR': {}, 'WARNING': {}, 'NOTICE': {}, 'INFORMATIONAL': {}, 'DEBUG': {}},), is_leaf=True, yang_name="severity", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-log:syslog-severity', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """severity must be of a type compatible with oc-log:syslog-severity""",
          'defined-type': "oc-log:syslog-severity",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'EMERGENCY': {}, 'ALERT': {}, 'CRITICAL': {}, 'ERROR': {}, 'WARNING': {}, 'NOTICE': {}, 'INFORMATIONAL': {}, 'DEBUG': {}},), is_leaf=True, yang_name="severity", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-log:syslog-severity', is_config=True)""",
        })

    self.__severity = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_severity(self):
    self.__severity = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'EMERGENCY': {}, 'ALERT': {}, 'CRITICAL': {}, 'ERROR': {}, 'WARNING': {}, 'NOTICE': {}, 'INFORMATIONAL': {}, 'DEBUG': {}},), is_leaf=True, yang_name="severity", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-log:syslog-severity', is_config=True)

  severity = __builtin__.property(_get_severity, _set_severity)


  _pyangbind_elements = OrderedDict([('severity', severity), ])


class yc_message_openconfig_access_points__access_points_access_point_system_messages_state_message(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/messages/state/message. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Syslog messages the client is Subscribing to. This is all
messages currently configured to be sent according to
syslog-severity.
  """
  __slots__ = ('_path_helper', '_extmethods', '__msg','__priority','__app_name','__procid','__msgid',)

  _yang_name = 'message'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__msg = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="msg", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)
    self.__priority = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="priority", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)
    self.__app_name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="app-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)
    self.__procid = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="procid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)
    self.__msgid = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="msgid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', 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 ['access-points', 'access-point', 'system', 'messages', 'state', 'message']

  def _get_msg(self):
    """
    Getter method for msg, mapped from YANG variable /access_points/access_point/system/messages/state/message/msg (string)

    YANG Description: Message payload. If other leafs within this container not
supported, this leaf MAY include the entire message,
inclding pri, procid, app-name etc..
    """
    return self.__msg
      
  def _set_msg(self, v, load=False):
    """
    Setter method for msg, mapped from YANG variable /access_points/access_point/system/messages/state/message/msg (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_msg is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_msg() directly.

    YANG Description: Message payload. If other leafs within this container not
supported, this leaf MAY include the entire message,
inclding pri, procid, app-name etc..
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="msg", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """msg must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="msg", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)""",
        })

    self.__msg = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_msg(self):
    self.__msg = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="msg", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)


  def _get_priority(self):
    """
    Getter method for priority, mapped from YANG variable /access_points/access_point/system/messages/state/message/priority (uint8)

    YANG Description: The Priority value (PRIVAL) represents both the
Facility and Severity.
    """
    return self.__priority
      
  def _set_priority(self, v, load=False):
    """
    Setter method for priority, mapped from YANG variable /access_points/access_point/system/messages/state/message/priority (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_priority is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_priority() directly.

    YANG Description: The Priority value (PRIVAL) represents both the
Facility and Severity.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="priority", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """priority must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="priority", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)""",
        })

    self.__priority = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_priority(self):
    self.__priority = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="priority", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)


  def _get_app_name(self):
    """
    Getter method for app_name, mapped from YANG variable /access_points/access_point/system/messages/state/message/app_name (string)

    YANG Description: The APP-NAME field SHOULD identify the device or
application that originated the message.
    """
    return self.__app_name
      
  def _set_app_name(self, v, load=False):
    """
    Setter method for app_name, mapped from YANG variable /access_points/access_point/system/messages/state/message/app_name (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_app_name is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_app_name() directly.

    YANG Description: The APP-NAME field SHOULD identify the device or
application that originated the message.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="app-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """app_name must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="app-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)""",
        })

    self.__app_name = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_app_name(self):
    self.__app_name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="app-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)


  def _get_procid(self):
    """
    Getter method for procid, mapped from YANG variable /access_points/access_point/system/messages/state/message/procid (string)

    YANG Description: PROCID is a value that is included in the message, having
no interoperable meaning, except that a change in the value
indicates there has been a discontinuity in syslog
reporting.
    """
    return self.__procid
      
  def _set_procid(self, v, load=False):
    """
    Setter method for procid, mapped from YANG variable /access_points/access_point/system/messages/state/message/procid (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_procid is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_procid() directly.

    YANG Description: PROCID is a value that is included in the message, having
no interoperable meaning, except that a change in the value
indicates there has been a discontinuity in syslog
reporting.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="procid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """procid must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="procid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)""",
        })

    self.__procid = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_procid(self):
    self.__procid = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="procid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)


  def _get_msgid(self):
    """
    Getter method for msgid, mapped from YANG variable /access_points/access_point/system/messages/state/message/msgid (string)

    YANG Description: The MSGID SHOULD identify the type of message. For
example, a firewall might use the MSGID 'TCPIN' for
incoming TCP traffic and the MSGID 'TCPOUT' for outgoing
TCP traffic.
    """
    return self.__msgid
      
  def _set_msgid(self, v, load=False):
    """
    Setter method for msgid, mapped from YANG variable /access_points/access_point/system/messages/state/message/msgid (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_msgid is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_msgid() directly.

    YANG Description: The MSGID SHOULD identify the type of message. For
example, a firewall might use the MSGID 'TCPIN' for
incoming TCP traffic and the MSGID 'TCPOUT' for outgoing
TCP traffic.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="msgid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """msgid must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="msgid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)""",
        })

    self.__msgid = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_msgid(self):
    self.__msgid = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="msgid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)

  msg = __builtin__.property(_get_msg)
  priority = __builtin__.property(_get_priority)
  app_name = __builtin__.property(_get_app_name)
  procid = __builtin__.property(_get_procid)
  msgid = __builtin__.property(_get_msgid)


  _pyangbind_elements = OrderedDict([('msg', msg), ('priority', priority), ('app_name', app_name), ('procid', procid), ('msgid', msgid), ])


class yc_state_openconfig_access_points__access_points_access_point_system_messages_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/messages/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Operational state data for a Syslog messages.
  """
  __slots__ = ('_path_helper', '_extmethods', '__severity','__message',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__severity = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'EMERGENCY': {}, 'ALERT': {}, 'CRITICAL': {}, 'ERROR': {}, 'WARNING': {}, 'NOTICE': {}, 'INFORMATIONAL': {}, 'DEBUG': {}},), is_leaf=True, yang_name="severity", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-log:syslog-severity', is_config=False)
    self.__message = YANGDynClass(base=yc_message_openconfig_access_points__access_points_access_point_system_messages_state_message, is_container='container', yang_name="message", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', 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 ['access-points', 'access-point', 'system', 'messages', 'state']

  def _get_severity(self):
    """
    Getter method for severity, mapped from YANG variable /access_points/access_point/system/messages/state/severity (oc-log:syslog-severity)

    YANG Description: Specifies that only messages of the given severity (or
greater severity) are sent over the RPC.

This is analogous to differentiating which severity is to be
sent to legacy Syslog servers, as opposed to local buffer or
files.
    """
    return self.__severity
      
  def _set_severity(self, v, load=False):
    """
    Setter method for severity, mapped from YANG variable /access_points/access_point/system/messages/state/severity (oc-log:syslog-severity)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_severity is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_severity() directly.

    YANG Description: Specifies that only messages of the given severity (or
greater severity) are sent over the RPC.

This is analogous to differentiating which severity is to be
sent to legacy Syslog servers, as opposed to local buffer or
files.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'EMERGENCY': {}, 'ALERT': {}, 'CRITICAL': {}, 'ERROR': {}, 'WARNING': {}, 'NOTICE': {}, 'INFORMATIONAL': {}, 'DEBUG': {}},), is_leaf=True, yang_name="severity", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-log:syslog-severity', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """severity must be of a type compatible with oc-log:syslog-severity""",
          'defined-type': "oc-log:syslog-severity",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'EMERGENCY': {}, 'ALERT': {}, 'CRITICAL': {}, 'ERROR': {}, 'WARNING': {}, 'NOTICE': {}, 'INFORMATIONAL': {}, 'DEBUG': {}},), is_leaf=True, yang_name="severity", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-log:syslog-severity', is_config=False)""",
        })

    self.__severity = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_severity(self):
    self.__severity = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'EMERGENCY': {}, 'ALERT': {}, 'CRITICAL': {}, 'ERROR': {}, 'WARNING': {}, 'NOTICE': {}, 'INFORMATIONAL': {}, 'DEBUG': {}},), is_leaf=True, yang_name="severity", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-log:syslog-severity', is_config=False)


  def _get_message(self):
    """
    Getter method for message, mapped from YANG variable /access_points/access_point/system/messages/state/message (container)

    YANG Description: Syslog messages the client is Subscribing to. This is all
messages currently configured to be sent according to
syslog-severity.
    """
    return self.__message
      
  def _set_message(self, v, load=False):
    """
    Setter method for message, mapped from YANG variable /access_points/access_point/system/messages/state/message (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_message is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_message() directly.

    YANG Description: Syslog messages the client is Subscribing to. This is all
messages currently configured to be sent according to
syslog-severity.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_message_openconfig_access_points__access_points_access_point_system_messages_state_message, is_container='container', yang_name="message", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """message must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_message_openconfig_access_points__access_points_access_point_system_messages_state_message, is_container='container', yang_name="message", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)""",
        })

    self.__message = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_message(self):
    self.__message = YANGDynClass(base=yc_message_openconfig_access_points__access_points_access_point_system_messages_state_message, is_container='container', yang_name="message", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)

  severity = __builtin__.property(_get_severity)
  message = __builtin__.property(_get_message)


  _pyangbind_elements = OrderedDict([('severity', severity), ('message', message), ])


class yc_config_openconfig_access_points__access_points_access_point_system_messages_debug_entries_debug_service_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/messages/debug-entries/debug-service/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Configuration data for debug service entries.
  """
  __slots__ = ('_path_helper', '_extmethods', '__service','__enabled',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__service = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={},), is_leaf=True, yang_name="service", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=True)
    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)

    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 ['access-points', 'access-point', 'system', 'messages', 'debug-entries', 'debug-service', 'config']

  def _get_service(self):
    """
    Getter method for service, mapped from YANG variable /access_points/access_point/system/messages/debug_entries/debug_service/config/service (identityref)

    YANG Description: Enumeration of all services which can have debugging enabled.
Vendors are to augment this base identity with their platform
or OS specific debug options.
    """
    return self.__service
      
  def _set_service(self, v, load=False):
    """
    Setter method for service, mapped from YANG variable /access_points/access_point/system/messages/debug_entries/debug_service/config/service (identityref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_service is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_service() directly.

    YANG Description: Enumeration of all services which can have debugging enabled.
Vendors are to augment this base identity with their platform
or OS specific debug options.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={},), is_leaf=True, yang_name="service", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """service must be of a type compatible with identityref""",
          'defined-type': "openconfig-access-points:identityref",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={},), is_leaf=True, yang_name="service", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=True)""",
        })

    self.__service = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_service(self):
    self.__service = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={},), is_leaf=True, yang_name="service", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=True)


  def _get_enabled(self):
    """
    Getter method for enabled, mapped from YANG variable /access_points/access_point/system/messages/debug_entries/debug_service/config/enabled (boolean)

    YANG Description: Enable and disable debugging.
    """
    return self.__enabled
      
  def _set_enabled(self, v, load=False):
    """
    Setter method for enabled, mapped from YANG variable /access_points/access_point/system/messages/debug_entries/debug_service/config/enabled (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_enabled is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_enabled() directly.

    YANG Description: Enable and disable debugging.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """enabled must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)""",
        })

    self.__enabled = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_enabled(self):
    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)

  service = __builtin__.property(_get_service, _set_service)
  enabled = __builtin__.property(_get_enabled, _set_enabled)


  _pyangbind_elements = OrderedDict([('service', service), ('enabled', enabled), ])


class yc_state_openconfig_access_points__access_points_access_point_system_messages_debug_entries_debug_service_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/messages/debug-entries/debug-service/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Operational state data for enabled debugs.
  """
  __slots__ = ('_path_helper', '_extmethods', '__service','__enabled',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__service = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={},), is_leaf=True, yang_name="service", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)
    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', 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 ['access-points', 'access-point', 'system', 'messages', 'debug-entries', 'debug-service', 'state']

  def _get_service(self):
    """
    Getter method for service, mapped from YANG variable /access_points/access_point/system/messages/debug_entries/debug_service/state/service (identityref)

    YANG Description: Enumeration of all services which can have debugging enabled.
Vendors are to augment this base identity with their platform
or OS specific debug options.
    """
    return self.__service
      
  def _set_service(self, v, load=False):
    """
    Setter method for service, mapped from YANG variable /access_points/access_point/system/messages/debug_entries/debug_service/state/service (identityref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_service is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_service() directly.

    YANG Description: Enumeration of all services which can have debugging enabled.
Vendors are to augment this base identity with their platform
or OS specific debug options.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={},), is_leaf=True, yang_name="service", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """service must be of a type compatible with identityref""",
          'defined-type': "openconfig-access-points:identityref",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={},), is_leaf=True, yang_name="service", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)""",
        })

    self.__service = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_service(self):
    self.__service = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={},), is_leaf=True, yang_name="service", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)


  def _get_enabled(self):
    """
    Getter method for enabled, mapped from YANG variable /access_points/access_point/system/messages/debug_entries/debug_service/state/enabled (boolean)

    YANG Description: Enable and disable debugging.
    """
    return self.__enabled
      
  def _set_enabled(self, v, load=False):
    """
    Setter method for enabled, mapped from YANG variable /access_points/access_point/system/messages/debug_entries/debug_service/state/enabled (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_enabled is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_enabled() directly.

    YANG Description: Enable and disable debugging.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """enabled must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)""",
        })

    self.__enabled = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_enabled(self):
    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)

  service = __builtin__.property(_get_service)
  enabled = __builtin__.property(_get_enabled)


  _pyangbind_elements = OrderedDict([('service', service), ('enabled', enabled), ])


class yc_debug_service_openconfig_access_points__access_points_access_point_system_messages_debug_entries_debug_service(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/messages/debug-entries/debug-service. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: List of debugging entries.
  """
  __slots__ = ('_path_helper', '_extmethods', '__service','__config','__state',)

  _yang_name = 'debug-service'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__service = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="service", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_messages_debug_entries_debug_service_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_messages_debug_entries_debug_service_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'system', 'messages', 'debug-entries', 'debug-service']

  def _get_service(self):
    """
    Getter method for service, mapped from YANG variable /access_points/access_point/system/messages/debug_entries/debug_service/service (leafref)

    YANG Description: Reference to the debug-enable service key.
    """
    return self.__service
      
  def _set_service(self, v, load=False):
    """
    Setter method for service, mapped from YANG variable /access_points/access_point/system/messages/debug_entries/debug_service/service (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_service is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_service() directly.

    YANG Description: Reference to the debug-enable service key.
    """
    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="service", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """service must be of a type compatible with leafref""",
          'defined-type': "leafref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="service", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)""",
        })

    self.__service = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_service(self):
    self.__service = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="service", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)


  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/system/messages/debug_entries/debug_service/config (container)

    YANG Description: Configuration data for debug service entries.
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/system/messages/debug_entries/debug_service/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Configuration data for debug service entries.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_access_points__access_points_access_point_system_messages_debug_entries_debug_service_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_messages_debug_entries_debug_service_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_messages_debug_entries_debug_service_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/system/messages/debug_entries/debug_service/state (container)

    YANG Description: Operational state data for enabled debugs.
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/system/messages/debug_entries/debug_service/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: Operational state data for enabled debugs.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_system_messages_debug_entries_debug_service_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_messages_debug_entries_debug_service_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_messages_debug_entries_debug_service_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

  service = __builtin__.property(_get_service, _set_service)
  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)


  _pyangbind_elements = OrderedDict([('service', service), ('config', config), ('state', state), ])


class yc_debug_entries_openconfig_access_points__access_points_access_point_system_messages_debug_entries(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/messages/debug-entries. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Enclosing container for list of debugs to enable.
  """
  __slots__ = ('_path_helper', '_extmethods', '__debug_service',)

  _yang_name = 'debug-entries'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__debug_service = YANGDynClass(base=YANGListType("service",yc_debug_service_openconfig_access_points__access_points_access_point_system_messages_debug_entries_debug_service, yang_name="debug-service", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='service', extensions=None), is_container='list', yang_name="debug-service", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)

    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 ['access-points', 'access-point', 'system', 'messages', 'debug-entries']

  def _get_debug_service(self):
    """
    Getter method for debug_service, mapped from YANG variable /access_points/access_point/system/messages/debug_entries/debug_service (list)

    YANG Description: List of debugging entries.
    """
    return self.__debug_service
      
  def _set_debug_service(self, v, load=False):
    """
    Setter method for debug_service, mapped from YANG variable /access_points/access_point/system/messages/debug_entries/debug_service (list)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_debug_service is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_debug_service() directly.

    YANG Description: List of debugging entries.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGListType("service",yc_debug_service_openconfig_access_points__access_points_access_point_system_messages_debug_entries_debug_service, yang_name="debug-service", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='service', extensions=None), is_container='list', yang_name="debug-service", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """debug_service must be of a type compatible with list""",
          'defined-type': "list",
          'generated-type': """YANGDynClass(base=YANGListType("service",yc_debug_service_openconfig_access_points__access_points_access_point_system_messages_debug_entries_debug_service, yang_name="debug-service", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='service', extensions=None), is_container='list', yang_name="debug-service", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)""",
        })

    self.__debug_service = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_debug_service(self):
    self.__debug_service = YANGDynClass(base=YANGListType("service",yc_debug_service_openconfig_access_points__access_points_access_point_system_messages_debug_entries_debug_service, yang_name="debug-service", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='service', extensions=None), is_container='list', yang_name="debug-service", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)

  debug_service = __builtin__.property(_get_debug_service, _set_debug_service)


  _pyangbind_elements = OrderedDict([('debug_service', debug_service), ])


class yc_messages_openconfig_access_points__access_points_access_point_system_messages(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/messages. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Top-level container for Syslog messages.
  """
  __slots__ = ('_path_helper', '_extmethods', '__config','__state','__debug_entries',)

  _yang_name = 'messages'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_messages_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_messages_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__debug_entries = YANGDynClass(base=yc_debug_entries_openconfig_access_points__access_points_access_point_system_messages_debug_entries, is_container='container', yang_name="debug-entries", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'system', 'messages']

  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/system/messages/config (container)

    YANG Description: Configuration data for Syslog messages.
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/system/messages/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Configuration data for Syslog messages.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_access_points__access_points_access_point_system_messages_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_messages_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_messages_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/system/messages/state (container)

    YANG Description: Operational state data for a Syslog messages.
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/system/messages/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: Operational state data for a Syslog messages.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_system_messages_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_messages_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_messages_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_debug_entries(self):
    """
    Getter method for debug_entries, mapped from YANG variable /access_points/access_point/system/messages/debug_entries (container)

    YANG Description: Enclosing container for list of debugs to enable.
    """
    return self.__debug_entries
      
  def _set_debug_entries(self, v, load=False):
    """
    Setter method for debug_entries, mapped from YANG variable /access_points/access_point/system/messages/debug_entries (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_debug_entries is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_debug_entries() directly.

    YANG Description: Enclosing container for list of debugs to enable.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_debug_entries_openconfig_access_points__access_points_access_point_system_messages_debug_entries, is_container='container', yang_name="debug-entries", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """debug_entries must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_debug_entries_openconfig_access_points__access_points_access_point_system_messages_debug_entries, is_container='container', yang_name="debug-entries", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__debug_entries = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_debug_entries(self):
    self.__debug_entries = YANGDynClass(base=yc_debug_entries_openconfig_access_points__access_points_access_point_system_messages_debug_entries, is_container='container', yang_name="debug-entries", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)
  debug_entries = __builtin__.property(_get_debug_entries, _set_debug_entries)


  _pyangbind_elements = OrderedDict([('config', config), ('state', state), ('debug_entries', debug_entries), ])


class yc_config_openconfig_access_points__access_points_access_point_system_license_licenses_license_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/license/licenses/license/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Configuration data for license
  """
  __slots__ = ('_path_helper', '_extmethods', '__license_id','__license_data','__active',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__license_id = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="license-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=True)
    self.__license_data = YANGDynClass(base=[bitarray,six.text_type,], is_leaf=True, yang_name="license-data", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='union', is_config=True)
    self.__active = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="active", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)

    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 ['access-points', 'access-point', 'system', 'license', 'licenses', 'license', 'config']

  def _get_license_id(self):
    """
    Getter method for license_id, mapped from YANG variable /access_points/access_point/system/license/licenses/license/config/license_id (string)

    YANG Description: License ID. A string that uniquelly identifies the license. The
platform should list all the licenses it supports being activated.
    """
    return self.__license_id
      
  def _set_license_id(self, v, load=False):
    """
    Setter method for license_id, mapped from YANG variable /access_points/access_point/system/license/licenses/license/config/license_id (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_license_id is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_license_id() directly.

    YANG Description: License ID. A string that uniquelly identifies the license. The
platform should list all the licenses it supports being activated.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="license-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """license_id must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="license-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=True)""",
        })

    self.__license_id = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_license_id(self):
    self.__license_id = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="license-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=True)


  def _get_license_data(self):
    """
    Getter method for license_data, mapped from YANG variable /access_points/access_point/system/license/licenses/license/config/license_data (union)

    YANG Description: The contents of the licence (if required) - which may be
supplied as a binary blob, or a simple string value. If this
value is considered sensitive, it may be read as an empty value.
    """
    return self.__license_data
      
  def _set_license_data(self, v, load=False):
    """
    Setter method for license_data, mapped from YANG variable /access_points/access_point/system/license/licenses/license/config/license_data (union)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_license_data is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_license_data() directly.

    YANG Description: The contents of the licence (if required) - which may be
supplied as a binary blob, or a simple string value. If this
value is considered sensitive, it may be read as an empty value.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=[bitarray,six.text_type,], is_leaf=True, yang_name="license-data", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='union', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """license_data must be of a type compatible with union""",
          'defined-type': "openconfig-access-points:union",
          'generated-type': """YANGDynClass(base=[bitarray,six.text_type,], is_leaf=True, yang_name="license-data", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='union', is_config=True)""",
        })

    self.__license_data = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_license_data(self):
    self.__license_data = YANGDynClass(base=[bitarray,six.text_type,], is_leaf=True, yang_name="license-data", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='union', is_config=True)


  def _get_active(self):
    """
    Getter method for active, mapped from YANG variable /access_points/access_point/system/license/licenses/license/config/active (boolean)

    YANG Description: The activation state of the license.
    """
    return self.__active
      
  def _set_active(self, v, load=False):
    """
    Setter method for active, mapped from YANG variable /access_points/access_point/system/license/licenses/license/config/active (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_active is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_active() directly.

    YANG Description: The activation state of the license.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="active", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """active must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="active", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)""",
        })

    self.__active = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_active(self):
    self.__active = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="active", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)

  license_id = __builtin__.property(_get_license_id, _set_license_id)
  license_data = __builtin__.property(_get_license_data, _set_license_data)
  active = __builtin__.property(_get_active, _set_active)


  _pyangbind_elements = OrderedDict([('license_id', license_id), ('license_data', license_data), ('active', active), ])


class yc_state_openconfig_access_points__access_points_access_point_system_license_licenses_license_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/license/licenses/license/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Operational state data for license.
  """
  __slots__ = ('_path_helper', '_extmethods', '__license_id','__license_data','__active','__description','__issue_date','__expiration_date','__in_use','__expired','__valid',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__license_id = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="license-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)
    self.__license_data = YANGDynClass(base=[bitarray,six.text_type,], is_leaf=True, yang_name="license-data", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='union', is_config=False)
    self.__active = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="active", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    self.__description = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="description", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)
    self.__issue_date = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="issue-date", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint64', is_config=False)
    self.__expiration_date = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="expiration-date", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint64', is_config=False)
    self.__in_use = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="in-use", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    self.__expired = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="expired", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    self.__valid = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="valid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', 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 ['access-points', 'access-point', 'system', 'license', 'licenses', 'license', 'state']

  def _get_license_id(self):
    """
    Getter method for license_id, mapped from YANG variable /access_points/access_point/system/license/licenses/license/state/license_id (string)

    YANG Description: License ID. A string that uniquelly identifies the license. The
platform should list all the licenses it supports being activated.
    """
    return self.__license_id
      
  def _set_license_id(self, v, load=False):
    """
    Setter method for license_id, mapped from YANG variable /access_points/access_point/system/license/licenses/license/state/license_id (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_license_id is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_license_id() directly.

    YANG Description: License ID. A string that uniquelly identifies the license. The
platform should list all the licenses it supports being activated.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="license-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """license_id must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="license-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)""",
        })

    self.__license_id = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_license_id(self):
    self.__license_id = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="license-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)


  def _get_license_data(self):
    """
    Getter method for license_data, mapped from YANG variable /access_points/access_point/system/license/licenses/license/state/license_data (union)

    YANG Description: The contents of the licence (if required) - which may be
supplied as a binary blob, or a simple string value. If this
value is considered sensitive, it may be read as an empty value.
    """
    return self.__license_data
      
  def _set_license_data(self, v, load=False):
    """
    Setter method for license_data, mapped from YANG variable /access_points/access_point/system/license/licenses/license/state/license_data (union)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_license_data is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_license_data() directly.

    YANG Description: The contents of the licence (if required) - which may be
supplied as a binary blob, or a simple string value. If this
value is considered sensitive, it may be read as an empty value.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=[bitarray,six.text_type,], is_leaf=True, yang_name="license-data", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='union', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """license_data must be of a type compatible with union""",
          'defined-type': "openconfig-access-points:union",
          'generated-type': """YANGDynClass(base=[bitarray,six.text_type,], is_leaf=True, yang_name="license-data", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='union', is_config=False)""",
        })

    self.__license_data = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_license_data(self):
    self.__license_data = YANGDynClass(base=[bitarray,six.text_type,], is_leaf=True, yang_name="license-data", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='union', is_config=False)


  def _get_active(self):
    """
    Getter method for active, mapped from YANG variable /access_points/access_point/system/license/licenses/license/state/active (boolean)

    YANG Description: The activation state of the license.
    """
    return self.__active
      
  def _set_active(self, v, load=False):
    """
    Setter method for active, mapped from YANG variable /access_points/access_point/system/license/licenses/license/state/active (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_active is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_active() directly.

    YANG Description: The activation state of the license.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="active", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """active must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="active", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)""",
        })

    self.__active = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_active(self):
    self.__active = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="active", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)


  def _get_description(self):
    """
    Getter method for description, mapped from YANG variable /access_points/access_point/system/license/licenses/license/state/description (string)

    YANG Description: The license description.
    """
    return self.__description
      
  def _set_description(self, v, load=False):
    """
    Setter method for description, mapped from YANG variable /access_points/access_point/system/license/licenses/license/state/description (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_description is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_description() directly.

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

    self.__description = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_description(self):
    self.__description = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="description", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)


  def _get_issue_date(self):
    """
    Getter method for issue_date, mapped from YANG variable /access_points/access_point/system/license/licenses/license/state/issue_date (uint64)

    YANG Description: The date and time at which the license was issued, expressed as the
number of nanoseconds since the Unix Epoch
(January 1, 1970, 00:00 UTC).
    """
    return self.__issue_date
      
  def _set_issue_date(self, v, load=False):
    """
    Setter method for issue_date, mapped from YANG variable /access_points/access_point/system/license/licenses/license/state/issue_date (uint64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_issue_date is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_issue_date() directly.

    YANG Description: The date and time at which the license was issued, expressed as the
number of nanoseconds since the Unix Epoch
(January 1, 1970, 00:00 UTC).
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="issue-date", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """issue_date must be of a type compatible with uint64""",
          'defined-type': "uint64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="issue-date", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint64', is_config=False)""",
        })

    self.__issue_date = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_issue_date(self):
    self.__issue_date = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="issue-date", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint64', is_config=False)


  def _get_expiration_date(self):
    """
    Getter method for expiration_date, mapped from YANG variable /access_points/access_point/system/license/licenses/license/state/expiration_date (uint64)

    YANG Description: The date and time at which the license will expire, expressed as the
number of nanoseconds since the Unix Epoch
(January 1, 1970, 00:00 UTC). Zero if it does not expire.
    """
    return self.__expiration_date
      
  def _set_expiration_date(self, v, load=False):
    """
    Setter method for expiration_date, mapped from YANG variable /access_points/access_point/system/license/licenses/license/state/expiration_date (uint64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_expiration_date is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_expiration_date() directly.

    YANG Description: The date and time at which the license will expire, expressed as the
number of nanoseconds since the Unix Epoch
(January 1, 1970, 00:00 UTC). Zero if it does not expire.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="expiration-date", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """expiration_date must be of a type compatible with uint64""",
          'defined-type': "uint64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="expiration-date", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint64', is_config=False)""",
        })

    self.__expiration_date = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_expiration_date(self):
    self.__expiration_date = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="expiration-date", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint64', is_config=False)


  def _get_in_use(self):
    """
    Getter method for in_use, mapped from YANG variable /access_points/access_point/system/license/licenses/license/state/in_use (boolean)

    YANG Description: The license is in use. Different from active. This states that the
license is effectively being used in addition to being active. If
license for feature X was activated but feature X is not being used,
then this should be false.
    """
    return self.__in_use
      
  def _set_in_use(self, v, load=False):
    """
    Setter method for in_use, mapped from YANG variable /access_points/access_point/system/license/licenses/license/state/in_use (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_in_use is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_in_use() directly.

    YANG Description: The license is in use. Different from active. This states that the
license is effectively being used in addition to being active. If
license for feature X was activated but feature X is not being used,
then this should be false.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="in-use", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """in_use must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="in-use", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)""",
        })

    self.__in_use = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_in_use(self):
    self.__in_use = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="in-use", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)


  def _get_expired(self):
    """
    Getter method for expired, mapped from YANG variable /access_points/access_point/system/license/licenses/license/state/expired (boolean)

    YANG Description: The license has expired.
    """
    return self.__expired
      
  def _set_expired(self, v, load=False):
    """
    Setter method for expired, mapped from YANG variable /access_points/access_point/system/license/licenses/license/state/expired (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_expired is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_expired() directly.

    YANG Description: The license has expired.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="expired", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """expired must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="expired", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)""",
        })

    self.__expired = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_expired(self):
    self.__expired = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="expired", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)


  def _get_valid(self):
    """
    Getter method for valid, mapped from YANG variable /access_points/access_point/system/license/licenses/license/state/valid (boolean)

    YANG Description: The license is valid. Can be activated in the system or platform.
    """
    return self.__valid
      
  def _set_valid(self, v, load=False):
    """
    Setter method for valid, mapped from YANG variable /access_points/access_point/system/license/licenses/license/state/valid (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_valid is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_valid() directly.

    YANG Description: The license is valid. Can be activated in the system or platform.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="valid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """valid must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="valid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)""",
        })

    self.__valid = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_valid(self):
    self.__valid = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="valid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)

  license_id = __builtin__.property(_get_license_id)
  license_data = __builtin__.property(_get_license_data)
  active = __builtin__.property(_get_active)
  description = __builtin__.property(_get_description)
  issue_date = __builtin__.property(_get_issue_date)
  expiration_date = __builtin__.property(_get_expiration_date)
  in_use = __builtin__.property(_get_in_use)
  expired = __builtin__.property(_get_expired)
  valid = __builtin__.property(_get_valid)


  _pyangbind_elements = OrderedDict([('license_id', license_id), ('license_data', license_data), ('active', active), ('description', description), ('issue_date', issue_date), ('expiration_date', expiration_date), ('in_use', in_use), ('expired', expired), ('valid', valid), ])


class yc_license_openconfig_access_points__access_points_access_point_system_license_licenses_license(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/license/licenses/license. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: List of licenses.
  """
  __slots__ = ('_path_helper', '_extmethods', '__license_id','__config','__state',)

  _yang_name = 'license'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__license_id = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="license-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_license_licenses_license_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_license_licenses_license_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'system', 'license', 'licenses', 'license']

  def _get_license_id(self):
    """
    Getter method for license_id, mapped from YANG variable /access_points/access_point/system/license/licenses/license/license_id (leafref)

    YANG Description: Reference to license id list key
    """
    return self.__license_id
      
  def _set_license_id(self, v, load=False):
    """
    Setter method for license_id, mapped from YANG variable /access_points/access_point/system/license/licenses/license/license_id (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_license_id is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_license_id() directly.

    YANG Description: Reference to license id list key
    """
    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="license-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """license_id must be of a type compatible with leafref""",
          'defined-type': "leafref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="license-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)""",
        })

    self.__license_id = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_license_id(self):
    self.__license_id = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="license-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)


  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/system/license/licenses/license/config (container)

    YANG Description: Configuration data for license
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/system/license/licenses/license/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Configuration data for license
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_access_points__access_points_access_point_system_license_licenses_license_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_license_licenses_license_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_license_licenses_license_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/system/license/licenses/license/state (container)

    YANG Description: Operational state data for license.
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/system/license/licenses/license/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: Operational state data for license.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_system_license_licenses_license_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_license_licenses_license_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_license_licenses_license_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

  license_id = __builtin__.property(_get_license_id, _set_license_id)
  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)


  _pyangbind_elements = OrderedDict([('license_id', license_id), ('config', config), ('state', state), ])


class yc_licenses_openconfig_access_points__access_points_access_point_system_license_licenses(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/license/licenses. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Enclosing container for list of licenses
  """
  __slots__ = ('_path_helper', '_extmethods', '__license',)

  _yang_name = 'licenses'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__license = YANGDynClass(base=YANGListType("license_id",yc_license_openconfig_access_points__access_points_access_point_system_license_licenses_license, yang_name="license", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='license-id', extensions=None), is_container='list', yang_name="license", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)

    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 ['access-points', 'access-point', 'system', 'license', 'licenses']

  def _get_license(self):
    """
    Getter method for license, mapped from YANG variable /access_points/access_point/system/license/licenses/license (list)

    YANG Description: List of licenses.
    """
    return self.__license
      
  def _set_license(self, v, load=False):
    """
    Setter method for license, mapped from YANG variable /access_points/access_point/system/license/licenses/license (list)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_license is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_license() directly.

    YANG Description: List of licenses.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGListType("license_id",yc_license_openconfig_access_points__access_points_access_point_system_license_licenses_license, yang_name="license", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='license-id', extensions=None), is_container='list', yang_name="license", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """license must be of a type compatible with list""",
          'defined-type': "list",
          'generated-type': """YANGDynClass(base=YANGListType("license_id",yc_license_openconfig_access_points__access_points_access_point_system_license_licenses_license, yang_name="license", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='license-id', extensions=None), is_container='list', yang_name="license", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)""",
        })

    self.__license = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_license(self):
    self.__license = YANGDynClass(base=YANGListType("license_id",yc_license_openconfig_access_points__access_points_access_point_system_license_licenses_license, yang_name="license", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='license-id', extensions=None), is_container='list', yang_name="license", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)

  license = __builtin__.property(_get_license, _set_license)


  _pyangbind_elements = OrderedDict([('license', license), ])


class yc_license_openconfig_access_points__access_points_access_point_system_license(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/license. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Container for license model
  """
  __slots__ = ('_path_helper', '_extmethods', '__licenses',)

  _yang_name = 'license'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__licenses = YANGDynClass(base=yc_licenses_openconfig_access_points__access_points_access_point_system_license_licenses, is_container='container', yang_name="licenses", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'system', 'license']

  def _get_licenses(self):
    """
    Getter method for licenses, mapped from YANG variable /access_points/access_point/system/license/licenses (container)

    YANG Description: Enclosing container for list of licenses
    """
    return self.__licenses
      
  def _set_licenses(self, v, load=False):
    """
    Setter method for licenses, mapped from YANG variable /access_points/access_point/system/license/licenses (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_licenses is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_licenses() directly.

    YANG Description: Enclosing container for list of licenses
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_licenses_openconfig_access_points__access_points_access_point_system_license_licenses, is_container='container', yang_name="licenses", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """licenses must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_licenses_openconfig_access_points__access_points_access_point_system_license_licenses, is_container='container', yang_name="licenses", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__licenses = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_licenses(self):
    self.__licenses = YANGDynClass(base=yc_licenses_openconfig_access_points__access_points_access_point_system_license_licenses, is_container='container', yang_name="licenses", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

  licenses = __builtin__.property(_get_licenses, _set_licenses)


  _pyangbind_elements = OrderedDict([('licenses', licenses), ])


class yc_config_openconfig_access_points__access_points_access_point_system_ssh_server_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/ssh-server/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Configuration data for the system ssh server
  """
  __slots__ = ('_path_helper', '_extmethods', '__enable','__protocol_version','__timeout','__rate_limit','__session_limit',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__enable = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enable", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)
    self.__protocol_version = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'V2': {}, 'V1': {}, 'V1_V2': {}},), default=six.text_type("V2"), is_leaf=True, yang_name="protocol-version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='enumeration', is_config=True)
    self.__timeout = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=True)
    self.__rate_limit = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="rate-limit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=True)
    self.__session_limit = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="session-limit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=True)

    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 ['access-points', 'access-point', 'system', 'ssh-server', 'config']

  def _get_enable(self):
    """
    Getter method for enable, mapped from YANG variable /access_points/access_point/system/ssh_server/config/enable (boolean)

    YANG Description: Enables the ssh server.  The ssh server is enabled by
default.
    """
    return self.__enable
      
  def _set_enable(self, v, load=False):
    """
    Setter method for enable, mapped from YANG variable /access_points/access_point/system/ssh_server/config/enable (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_enable is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_enable() directly.

    YANG Description: Enables the ssh server.  The ssh server is enabled by
default.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enable", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """enable must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enable", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)""",
        })

    self.__enable = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_enable(self):
    self.__enable = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enable", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)


  def _get_protocol_version(self):
    """
    Getter method for protocol_version, mapped from YANG variable /access_points/access_point/system/ssh_server/config/protocol_version (enumeration)

    YANG Description: Set the protocol version for SSH connections to the system
    """
    return self.__protocol_version
      
  def _set_protocol_version(self, v, load=False):
    """
    Setter method for protocol_version, mapped from YANG variable /access_points/access_point/system/ssh_server/config/protocol_version (enumeration)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_protocol_version is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_protocol_version() directly.

    YANG Description: Set the protocol version for SSH connections to the system
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'V2': {}, 'V1': {}, 'V1_V2': {}},), default=six.text_type("V2"), is_leaf=True, yang_name="protocol-version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='enumeration', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """protocol_version must be of a type compatible with enumeration""",
          'defined-type': "openconfig-access-points:enumeration",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'V2': {}, 'V1': {}, 'V1_V2': {}},), default=six.text_type("V2"), is_leaf=True, yang_name="protocol-version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='enumeration', is_config=True)""",
        })

    self.__protocol_version = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_protocol_version(self):
    self.__protocol_version = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'V2': {}, 'V1': {}, 'V1_V2': {}},), default=six.text_type("V2"), is_leaf=True, yang_name="protocol-version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='enumeration', is_config=True)


  def _get_timeout(self):
    """
    Getter method for timeout, mapped from YANG variable /access_points/access_point/system/ssh_server/config/timeout (uint16)

    YANG Description: Set the idle timeout in seconds on terminal connections to
the system for the protocol.
    """
    return self.__timeout
      
  def _set_timeout(self, v, load=False):
    """
    Setter method for timeout, mapped from YANG variable /access_points/access_point/system/ssh_server/config/timeout (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_timeout is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_timeout() directly.

    YANG Description: Set the idle timeout in seconds on terminal connections to
the system for the protocol.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """timeout must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=True)""",
        })

    self.__timeout = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_timeout(self):
    self.__timeout = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=True)


  def _get_rate_limit(self):
    """
    Getter method for rate_limit, mapped from YANG variable /access_points/access_point/system/ssh_server/config/rate_limit (uint16)

    YANG Description: Set a limit on the number of connection attempts per
minute to the system for the protocol.
    """
    return self.__rate_limit
      
  def _set_rate_limit(self, v, load=False):
    """
    Setter method for rate_limit, mapped from YANG variable /access_points/access_point/system/ssh_server/config/rate_limit (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rate_limit is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rate_limit() directly.

    YANG Description: Set a limit on the number of connection attempts per
minute to the system for the protocol.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="rate-limit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rate_limit must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="rate-limit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=True)""",
        })

    self.__rate_limit = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rate_limit(self):
    self.__rate_limit = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="rate-limit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=True)


  def _get_session_limit(self):
    """
    Getter method for session_limit, mapped from YANG variable /access_points/access_point/system/ssh_server/config/session_limit (uint16)

    YANG Description: Set a limit on the number of simultaneous active terminal
sessions to the system for the protocol (e.g., ssh,
telnet, ...) 
    """
    return self.__session_limit
      
  def _set_session_limit(self, v, load=False):
    """
    Setter method for session_limit, mapped from YANG variable /access_points/access_point/system/ssh_server/config/session_limit (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_session_limit is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_session_limit() directly.

    YANG Description: Set a limit on the number of simultaneous active terminal
sessions to the system for the protocol (e.g., ssh,
telnet, ...) 
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="session-limit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """session_limit must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="session-limit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=True)""",
        })

    self.__session_limit = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_session_limit(self):
    self.__session_limit = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="session-limit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=True)

  enable = __builtin__.property(_get_enable, _set_enable)
  protocol_version = __builtin__.property(_get_protocol_version, _set_protocol_version)
  timeout = __builtin__.property(_get_timeout, _set_timeout)
  rate_limit = __builtin__.property(_get_rate_limit, _set_rate_limit)
  session_limit = __builtin__.property(_get_session_limit, _set_session_limit)


  _pyangbind_elements = OrderedDict([('enable', enable), ('protocol_version', protocol_version), ('timeout', timeout), ('rate_limit', rate_limit), ('session_limit', session_limit), ])


class yc_state_openconfig_access_points__access_points_access_point_system_ssh_server_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/ssh-server/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Operational state data for the system ssh server
  """
  __slots__ = ('_path_helper', '_extmethods', '__enable','__protocol_version','__timeout','__rate_limit','__session_limit',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__enable = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enable", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    self.__protocol_version = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'V2': {}, 'V1': {}, 'V1_V2': {}},), default=six.text_type("V2"), is_leaf=True, yang_name="protocol-version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='enumeration', is_config=False)
    self.__timeout = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)
    self.__rate_limit = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="rate-limit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)
    self.__session_limit = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="session-limit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', 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 ['access-points', 'access-point', 'system', 'ssh-server', 'state']

  def _get_enable(self):
    """
    Getter method for enable, mapped from YANG variable /access_points/access_point/system/ssh_server/state/enable (boolean)

    YANG Description: Enables the ssh server.  The ssh server is enabled by
default.
    """
    return self.__enable
      
  def _set_enable(self, v, load=False):
    """
    Setter method for enable, mapped from YANG variable /access_points/access_point/system/ssh_server/state/enable (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_enable is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_enable() directly.

    YANG Description: Enables the ssh server.  The ssh server is enabled by
default.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enable", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """enable must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enable", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)""",
        })

    self.__enable = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_enable(self):
    self.__enable = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enable", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)


  def _get_protocol_version(self):
    """
    Getter method for protocol_version, mapped from YANG variable /access_points/access_point/system/ssh_server/state/protocol_version (enumeration)

    YANG Description: Set the protocol version for SSH connections to the system
    """
    return self.__protocol_version
      
  def _set_protocol_version(self, v, load=False):
    """
    Setter method for protocol_version, mapped from YANG variable /access_points/access_point/system/ssh_server/state/protocol_version (enumeration)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_protocol_version is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_protocol_version() directly.

    YANG Description: Set the protocol version for SSH connections to the system
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'V2': {}, 'V1': {}, 'V1_V2': {}},), default=six.text_type("V2"), is_leaf=True, yang_name="protocol-version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='enumeration', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """protocol_version must be of a type compatible with enumeration""",
          'defined-type': "openconfig-access-points:enumeration",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'V2': {}, 'V1': {}, 'V1_V2': {}},), default=six.text_type("V2"), is_leaf=True, yang_name="protocol-version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='enumeration', is_config=False)""",
        })

    self.__protocol_version = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_protocol_version(self):
    self.__protocol_version = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'V2': {}, 'V1': {}, 'V1_V2': {}},), default=six.text_type("V2"), is_leaf=True, yang_name="protocol-version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='enumeration', is_config=False)


  def _get_timeout(self):
    """
    Getter method for timeout, mapped from YANG variable /access_points/access_point/system/ssh_server/state/timeout (uint16)

    YANG Description: Set the idle timeout in seconds on terminal connections to
the system for the protocol.
    """
    return self.__timeout
      
  def _set_timeout(self, v, load=False):
    """
    Setter method for timeout, mapped from YANG variable /access_points/access_point/system/ssh_server/state/timeout (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_timeout is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_timeout() directly.

    YANG Description: Set the idle timeout in seconds on terminal connections to
the system for the protocol.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """timeout must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)""",
        })

    self.__timeout = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_timeout(self):
    self.__timeout = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)


  def _get_rate_limit(self):
    """
    Getter method for rate_limit, mapped from YANG variable /access_points/access_point/system/ssh_server/state/rate_limit (uint16)

    YANG Description: Set a limit on the number of connection attempts per
minute to the system for the protocol.
    """
    return self.__rate_limit
      
  def _set_rate_limit(self, v, load=False):
    """
    Setter method for rate_limit, mapped from YANG variable /access_points/access_point/system/ssh_server/state/rate_limit (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rate_limit is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rate_limit() directly.

    YANG Description: Set a limit on the number of connection attempts per
minute to the system for the protocol.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="rate-limit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rate_limit must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="rate-limit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)""",
        })

    self.__rate_limit = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rate_limit(self):
    self.__rate_limit = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="rate-limit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)


  def _get_session_limit(self):
    """
    Getter method for session_limit, mapped from YANG variable /access_points/access_point/system/ssh_server/state/session_limit (uint16)

    YANG Description: Set a limit on the number of simultaneous active terminal
sessions to the system for the protocol (e.g., ssh,
telnet, ...) 
    """
    return self.__session_limit
      
  def _set_session_limit(self, v, load=False):
    """
    Setter method for session_limit, mapped from YANG variable /access_points/access_point/system/ssh_server/state/session_limit (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_session_limit is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_session_limit() directly.

    YANG Description: Set a limit on the number of simultaneous active terminal
sessions to the system for the protocol (e.g., ssh,
telnet, ...) 
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="session-limit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """session_limit must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="session-limit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)""",
        })

    self.__session_limit = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_session_limit(self):
    self.__session_limit = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="session-limit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)

  enable = __builtin__.property(_get_enable)
  protocol_version = __builtin__.property(_get_protocol_version)
  timeout = __builtin__.property(_get_timeout)
  rate_limit = __builtin__.property(_get_rate_limit)
  session_limit = __builtin__.property(_get_session_limit)


  _pyangbind_elements = OrderedDict([('enable', enable), ('protocol_version', protocol_version), ('timeout', timeout), ('rate_limit', rate_limit), ('session_limit', session_limit), ])


class yc_ssh_server_openconfig_access_points__access_points_access_point_system_ssh_server(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/ssh-server. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Top-level container for ssh server
  """
  __slots__ = ('_path_helper', '_extmethods', '__config','__state',)

  _yang_name = 'ssh-server'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_ssh_server_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_ssh_server_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'system', 'ssh-server']

  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/system/ssh_server/config (container)

    YANG Description: Configuration data for the system ssh server
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/system/ssh_server/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Configuration data for the system ssh server
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_access_points__access_points_access_point_system_ssh_server_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_ssh_server_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_ssh_server_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/system/ssh_server/state (container)

    YANG Description: Operational state data for the system ssh server
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/system/ssh_server/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: Operational state data for the system ssh server
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_system_ssh_server_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_ssh_server_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_ssh_server_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)


  _pyangbind_elements = OrderedDict([('config', config), ('state', state), ])


class yc_config_openconfig_access_points__access_points_access_point_system_telnet_server_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/telnet-server/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Configuration data for telnet
  """
  __slots__ = ('_path_helper', '_extmethods', '__enable','__timeout','__rate_limit','__session_limit',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__enable = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enable", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)
    self.__timeout = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=True)
    self.__rate_limit = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="rate-limit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=True)
    self.__session_limit = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="session-limit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=True)

    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 ['access-points', 'access-point', 'system', 'telnet-server', 'config']

  def _get_enable(self):
    """
    Getter method for enable, mapped from YANG variable /access_points/access_point/system/telnet_server/config/enable (boolean)

    YANG Description: Enables the telnet server.  Telnet is disabled by
default
    """
    return self.__enable
      
  def _set_enable(self, v, load=False):
    """
    Setter method for enable, mapped from YANG variable /access_points/access_point/system/telnet_server/config/enable (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_enable is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_enable() directly.

    YANG Description: Enables the telnet server.  Telnet is disabled by
default
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enable", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """enable must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enable", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)""",
        })

    self.__enable = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_enable(self):
    self.__enable = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enable", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)


  def _get_timeout(self):
    """
    Getter method for timeout, mapped from YANG variable /access_points/access_point/system/telnet_server/config/timeout (uint16)

    YANG Description: Set the idle timeout in seconds on terminal connections to
the system for the protocol.
    """
    return self.__timeout
      
  def _set_timeout(self, v, load=False):
    """
    Setter method for timeout, mapped from YANG variable /access_points/access_point/system/telnet_server/config/timeout (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_timeout is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_timeout() directly.

    YANG Description: Set the idle timeout in seconds on terminal connections to
the system for the protocol.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """timeout must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=True)""",
        })

    self.__timeout = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_timeout(self):
    self.__timeout = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=True)


  def _get_rate_limit(self):
    """
    Getter method for rate_limit, mapped from YANG variable /access_points/access_point/system/telnet_server/config/rate_limit (uint16)

    YANG Description: Set a limit on the number of connection attempts per
minute to the system for the protocol.
    """
    return self.__rate_limit
      
  def _set_rate_limit(self, v, load=False):
    """
    Setter method for rate_limit, mapped from YANG variable /access_points/access_point/system/telnet_server/config/rate_limit (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rate_limit is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rate_limit() directly.

    YANG Description: Set a limit on the number of connection attempts per
minute to the system for the protocol.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="rate-limit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rate_limit must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="rate-limit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=True)""",
        })

    self.__rate_limit = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rate_limit(self):
    self.__rate_limit = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="rate-limit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=True)


  def _get_session_limit(self):
    """
    Getter method for session_limit, mapped from YANG variable /access_points/access_point/system/telnet_server/config/session_limit (uint16)

    YANG Description: Set a limit on the number of simultaneous active terminal
sessions to the system for the protocol (e.g., ssh,
telnet, ...) 
    """
    return self.__session_limit
      
  def _set_session_limit(self, v, load=False):
    """
    Setter method for session_limit, mapped from YANG variable /access_points/access_point/system/telnet_server/config/session_limit (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_session_limit is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_session_limit() directly.

    YANG Description: Set a limit on the number of simultaneous active terminal
sessions to the system for the protocol (e.g., ssh,
telnet, ...) 
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="session-limit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """session_limit must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="session-limit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=True)""",
        })

    self.__session_limit = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_session_limit(self):
    self.__session_limit = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="session-limit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=True)

  enable = __builtin__.property(_get_enable, _set_enable)
  timeout = __builtin__.property(_get_timeout, _set_timeout)
  rate_limit = __builtin__.property(_get_rate_limit, _set_rate_limit)
  session_limit = __builtin__.property(_get_session_limit, _set_session_limit)


  _pyangbind_elements = OrderedDict([('enable', enable), ('timeout', timeout), ('rate_limit', rate_limit), ('session_limit', session_limit), ])


class yc_state_openconfig_access_points__access_points_access_point_system_telnet_server_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/telnet-server/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Operational state data for telnet
  """
  __slots__ = ('_path_helper', '_extmethods', '__enable','__timeout','__rate_limit','__session_limit',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__enable = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enable", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    self.__timeout = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)
    self.__rate_limit = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="rate-limit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)
    self.__session_limit = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="session-limit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', 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 ['access-points', 'access-point', 'system', 'telnet-server', 'state']

  def _get_enable(self):
    """
    Getter method for enable, mapped from YANG variable /access_points/access_point/system/telnet_server/state/enable (boolean)

    YANG Description: Enables the telnet server.  Telnet is disabled by
default
    """
    return self.__enable
      
  def _set_enable(self, v, load=False):
    """
    Setter method for enable, mapped from YANG variable /access_points/access_point/system/telnet_server/state/enable (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_enable is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_enable() directly.

    YANG Description: Enables the telnet server.  Telnet is disabled by
default
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enable", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """enable must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enable", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)""",
        })

    self.__enable = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_enable(self):
    self.__enable = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enable", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)


  def _get_timeout(self):
    """
    Getter method for timeout, mapped from YANG variable /access_points/access_point/system/telnet_server/state/timeout (uint16)

    YANG Description: Set the idle timeout in seconds on terminal connections to
the system for the protocol.
    """
    return self.__timeout
      
  def _set_timeout(self, v, load=False):
    """
    Setter method for timeout, mapped from YANG variable /access_points/access_point/system/telnet_server/state/timeout (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_timeout is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_timeout() directly.

    YANG Description: Set the idle timeout in seconds on terminal connections to
the system for the protocol.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """timeout must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)""",
        })

    self.__timeout = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_timeout(self):
    self.__timeout = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)


  def _get_rate_limit(self):
    """
    Getter method for rate_limit, mapped from YANG variable /access_points/access_point/system/telnet_server/state/rate_limit (uint16)

    YANG Description: Set a limit on the number of connection attempts per
minute to the system for the protocol.
    """
    return self.__rate_limit
      
  def _set_rate_limit(self, v, load=False):
    """
    Setter method for rate_limit, mapped from YANG variable /access_points/access_point/system/telnet_server/state/rate_limit (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rate_limit is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rate_limit() directly.

    YANG Description: Set a limit on the number of connection attempts per
minute to the system for the protocol.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="rate-limit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rate_limit must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="rate-limit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)""",
        })

    self.__rate_limit = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rate_limit(self):
    self.__rate_limit = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="rate-limit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)


  def _get_session_limit(self):
    """
    Getter method for session_limit, mapped from YANG variable /access_points/access_point/system/telnet_server/state/session_limit (uint16)

    YANG Description: Set a limit on the number of simultaneous active terminal
sessions to the system for the protocol (e.g., ssh,
telnet, ...) 
    """
    return self.__session_limit
      
  def _set_session_limit(self, v, load=False):
    """
    Setter method for session_limit, mapped from YANG variable /access_points/access_point/system/telnet_server/state/session_limit (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_session_limit is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_session_limit() directly.

    YANG Description: Set a limit on the number of simultaneous active terminal
sessions to the system for the protocol (e.g., ssh,
telnet, ...) 
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="session-limit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """session_limit must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="session-limit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)""",
        })

    self.__session_limit = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_session_limit(self):
    self.__session_limit = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="session-limit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)

  enable = __builtin__.property(_get_enable)
  timeout = __builtin__.property(_get_timeout)
  rate_limit = __builtin__.property(_get_rate_limit)
  session_limit = __builtin__.property(_get_session_limit)


  _pyangbind_elements = OrderedDict([('enable', enable), ('timeout', timeout), ('rate_limit', rate_limit), ('session_limit', session_limit), ])


class yc_telnet_server_openconfig_access_points__access_points_access_point_system_telnet_server(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/telnet-server. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Top-level container for telnet terminal servers
  """
  __slots__ = ('_path_helper', '_extmethods', '__config','__state',)

  _yang_name = 'telnet-server'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_telnet_server_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_telnet_server_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'system', 'telnet-server']

  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/system/telnet_server/config (container)

    YANG Description: Configuration data for telnet
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/system/telnet_server/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Configuration data for telnet
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_access_points__access_points_access_point_system_telnet_server_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_telnet_server_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_telnet_server_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/system/telnet_server/state (container)

    YANG Description: Operational state data for telnet
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/system/telnet_server/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: Operational state data for telnet
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_system_telnet_server_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_telnet_server_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_telnet_server_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)


  _pyangbind_elements = OrderedDict([('config', config), ('state', state), ])


class yc_config_openconfig_access_points__access_points_access_point_system_clock_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/clock/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Configuration data for system clock
  """
  __slots__ = ('_path_helper', '_extmethods', '__timezone_name',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__timezone_name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="timezone-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='timezone-name-type', is_config=True)

    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 ['access-points', 'access-point', 'system', 'clock', 'config']

  def _get_timezone_name(self):
    """
    Getter method for timezone_name, mapped from YANG variable /access_points/access_point/system/clock/config/timezone_name (timezone-name-type)

    YANG Description: The TZ database name to use for the system, such
as 'Europe/Stockholm'.
    """
    return self.__timezone_name
      
  def _set_timezone_name(self, v, load=False):
    """
    Setter method for timezone_name, mapped from YANG variable /access_points/access_point/system/clock/config/timezone_name (timezone-name-type)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_timezone_name is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_timezone_name() directly.

    YANG Description: The TZ database name to use for the system, such
as 'Europe/Stockholm'.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="timezone-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='timezone-name-type', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """timezone_name must be of a type compatible with timezone-name-type""",
          'defined-type': "openconfig-access-points:timezone-name-type",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="timezone-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='timezone-name-type', is_config=True)""",
        })

    self.__timezone_name = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_timezone_name(self):
    self.__timezone_name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="timezone-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='timezone-name-type', is_config=True)

  timezone_name = __builtin__.property(_get_timezone_name, _set_timezone_name)


  _pyangbind_elements = OrderedDict([('timezone_name', timezone_name), ])


class yc_state_openconfig_access_points__access_points_access_point_system_clock_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/clock/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Operational state data for system clock
  """
  __slots__ = ('_path_helper', '_extmethods', '__timezone_name',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__timezone_name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="timezone-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='timezone-name-type', 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 ['access-points', 'access-point', 'system', 'clock', 'state']

  def _get_timezone_name(self):
    """
    Getter method for timezone_name, mapped from YANG variable /access_points/access_point/system/clock/state/timezone_name (timezone-name-type)

    YANG Description: The TZ database name to use for the system, such
as 'Europe/Stockholm'.
    """
    return self.__timezone_name
      
  def _set_timezone_name(self, v, load=False):
    """
    Setter method for timezone_name, mapped from YANG variable /access_points/access_point/system/clock/state/timezone_name (timezone-name-type)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_timezone_name is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_timezone_name() directly.

    YANG Description: The TZ database name to use for the system, such
as 'Europe/Stockholm'.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="timezone-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='timezone-name-type', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """timezone_name must be of a type compatible with timezone-name-type""",
          'defined-type': "openconfig-access-points:timezone-name-type",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="timezone-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='timezone-name-type', is_config=False)""",
        })

    self.__timezone_name = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_timezone_name(self):
    self.__timezone_name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="timezone-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='timezone-name-type', is_config=False)

  timezone_name = __builtin__.property(_get_timezone_name)


  _pyangbind_elements = OrderedDict([('timezone_name', timezone_name), ])


class yc_clock_openconfig_access_points__access_points_access_point_system_clock(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/clock. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Top-level container for clock configuration data
  """
  __slots__ = ('_path_helper', '_extmethods', '__config','__state',)

  _yang_name = 'clock'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_clock_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_clock_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'system', 'clock']

  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/system/clock/config (container)

    YANG Description: Configuration data for system clock
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/system/clock/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Configuration data for system clock
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_access_points__access_points_access_point_system_clock_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_clock_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_clock_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/system/clock/state (container)

    YANG Description: Operational state data for system clock
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/system/clock/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: Operational state data for system clock
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_system_clock_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_clock_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_clock_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)


  _pyangbind_elements = OrderedDict([('config', config), ('state', state), ])


class yc_total_openconfig_access_points__access_points_access_point_system_cpus_cpu_state_total(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/cpus/cpu/state/total. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Total CPU utilization.
  """
  __slots__ = ('_path_helper', '_extmethods', '__instant','__avg','__min_','__max_','__interval','__min_time','__max_time',)

  _yang_name = 'total'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__instant = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="instant", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    self.__avg = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="avg", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    self.__min_ = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="min", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    self.__max_ = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="max", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    self.__interval = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:stat-interval', is_config=False)
    self.__min_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="min-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)
    self.__max_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', 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 ['access-points', 'access-point', 'system', 'cpus', 'cpu', 'state', 'total']

  def _get_instant(self):
    """
    Getter method for instant, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/total/instant (oc-types:percentage)

    YANG Description: The instantaneous percentage value.
    """
    return self.__instant
      
  def _set_instant(self, v, load=False):
    """
    Setter method for instant, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/total/instant (oc-types:percentage)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_instant is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_instant() directly.

    YANG Description: The instantaneous percentage value.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="instant", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """instant must be of a type compatible with oc-types:percentage""",
          'defined-type': "oc-types:percentage",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="instant", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)""",
        })

    self.__instant = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_instant(self):
    self.__instant = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="instant", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)


  def _get_avg(self):
    """
    Getter method for avg, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/total/avg (oc-types:percentage)

    YANG Description: The arithmetic mean value of the percentage measure of the
statistic over the time interval.
    """
    return self.__avg
      
  def _set_avg(self, v, load=False):
    """
    Setter method for avg, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/total/avg (oc-types:percentage)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_avg is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_avg() directly.

    YANG Description: The arithmetic mean value of the percentage measure of the
statistic over the time interval.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="avg", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """avg must be of a type compatible with oc-types:percentage""",
          'defined-type': "oc-types:percentage",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="avg", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)""",
        })

    self.__avg = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_avg(self):
    self.__avg = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="avg", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)


  def _get_min_(self):
    """
    Getter method for min_, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/total/min (oc-types:percentage)

    YANG Description: The minimum value of the percentage measure of the
statistic over the time interval.
    """
    return self.__min_
      
  def _set_min_(self, v, load=False):
    """
    Setter method for min_, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/total/min (oc-types:percentage)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_min_ is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_min_() directly.

    YANG Description: The minimum value of the percentage measure of the
statistic over the time interval.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="min", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """min_ must be of a type compatible with oc-types:percentage""",
          'defined-type': "oc-types:percentage",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="min", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)""",
        })

    self.__min_ = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_min_(self):
    self.__min_ = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="min", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)


  def _get_max_(self):
    """
    Getter method for max_, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/total/max (oc-types:percentage)

    YANG Description: The maximum value of the percentage measure of the
statistic over the time interval.
    """
    return self.__max_
      
  def _set_max_(self, v, load=False):
    """
    Setter method for max_, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/total/max (oc-types:percentage)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_max_ is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_max_() directly.

    YANG Description: The maximum value of the percentage measure of the
statistic over the time interval.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="max", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """max_ must be of a type compatible with oc-types:percentage""",
          'defined-type': "oc-types:percentage",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="max", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)""",
        })

    self.__max_ = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_max_(self):
    self.__max_ = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="max", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)


  def _get_interval(self):
    """
    Getter method for interval, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/total/interval (oc-types:stat-interval)

    YANG Description: If supported by the system, this reports the time interval
over which the min/max/average statistics are computed by
the system.
    """
    return self.__interval
      
  def _set_interval(self, v, load=False):
    """
    Setter method for interval, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/total/interval (oc-types:stat-interval)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_interval is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_interval() directly.

    YANG Description: If supported by the system, this reports the time interval
over which the min/max/average statistics are computed by
the system.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:stat-interval', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """interval must be of a type compatible with oc-types:stat-interval""",
          'defined-type': "oc-types:stat-interval",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:stat-interval', is_config=False)""",
        })

    self.__interval = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_interval(self):
    self.__interval = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:stat-interval', is_config=False)


  def _get_min_time(self):
    """
    Getter method for min_time, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/total/min_time (oc-types:timeticks64)

    YANG Description: The absolute time at which the minimum value occurred.
The value is the timestamp in nanoseconds relative to
 the Unix Epoch (Jan 1, 1970 00:00:00 UTC).
    """
    return self.__min_time
      
  def _set_min_time(self, v, load=False):
    """
    Setter method for min_time, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/total/min_time (oc-types:timeticks64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_min_time is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_min_time() directly.

    YANG Description: The absolute time at which the minimum value occurred.
The value is the timestamp in nanoseconds relative to
 the Unix Epoch (Jan 1, 1970 00:00:00 UTC).
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="min-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """min_time must be of a type compatible with oc-types:timeticks64""",
          'defined-type': "oc-types:timeticks64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="min-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)""",
        })

    self.__min_time = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_min_time(self):
    self.__min_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="min-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)


  def _get_max_time(self):
    """
    Getter method for max_time, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/total/max_time (oc-types:timeticks64)

    YANG Description: The absolute time at which the maximum value occurred.
The value is the timestamp in nanoseconds relative to
 the Unix Epoch (Jan 1, 1970 00:00:00 UTC).
    """
    return self.__max_time
      
  def _set_max_time(self, v, load=False):
    """
    Setter method for max_time, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/total/max_time (oc-types:timeticks64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_max_time is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_max_time() directly.

    YANG Description: The absolute time at which the maximum value occurred.
The value is the timestamp in nanoseconds relative to
 the Unix Epoch (Jan 1, 1970 00:00:00 UTC).
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """max_time must be of a type compatible with oc-types:timeticks64""",
          'defined-type': "oc-types:timeticks64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)""",
        })

    self.__max_time = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_max_time(self):
    self.__max_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)

  instant = __builtin__.property(_get_instant)
  avg = __builtin__.property(_get_avg)
  min_ = __builtin__.property(_get_min_)
  max_ = __builtin__.property(_get_max_)
  interval = __builtin__.property(_get_interval)
  min_time = __builtin__.property(_get_min_time)
  max_time = __builtin__.property(_get_max_time)


  _pyangbind_elements = OrderedDict([('instant', instant), ('avg', avg), ('min_', min_), ('max_', max_), ('interval', interval), ('min_time', min_time), ('max_time', max_time), ])


class yc_user_openconfig_access_points__access_points_access_point_system_cpus_cpu_state_user(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/cpus/cpu/state/user. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Percentage of CPU time spent running in user space.
  """
  __slots__ = ('_path_helper', '_extmethods', '__instant','__avg','__min_','__max_','__interval','__min_time','__max_time',)

  _yang_name = 'user'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__instant = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="instant", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    self.__avg = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="avg", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    self.__min_ = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="min", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    self.__max_ = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="max", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    self.__interval = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:stat-interval', is_config=False)
    self.__min_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="min-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)
    self.__max_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', 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 ['access-points', 'access-point', 'system', 'cpus', 'cpu', 'state', 'user']

  def _get_instant(self):
    """
    Getter method for instant, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/user/instant (oc-types:percentage)

    YANG Description: The instantaneous percentage value.
    """
    return self.__instant
      
  def _set_instant(self, v, load=False):
    """
    Setter method for instant, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/user/instant (oc-types:percentage)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_instant is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_instant() directly.

    YANG Description: The instantaneous percentage value.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="instant", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """instant must be of a type compatible with oc-types:percentage""",
          'defined-type': "oc-types:percentage",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="instant", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)""",
        })

    self.__instant = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_instant(self):
    self.__instant = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="instant", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)


  def _get_avg(self):
    """
    Getter method for avg, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/user/avg (oc-types:percentage)

    YANG Description: The arithmetic mean value of the percentage measure of the
statistic over the time interval.
    """
    return self.__avg
      
  def _set_avg(self, v, load=False):
    """
    Setter method for avg, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/user/avg (oc-types:percentage)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_avg is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_avg() directly.

    YANG Description: The arithmetic mean value of the percentage measure of the
statistic over the time interval.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="avg", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """avg must be of a type compatible with oc-types:percentage""",
          'defined-type': "oc-types:percentage",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="avg", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)""",
        })

    self.__avg = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_avg(self):
    self.__avg = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="avg", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)


  def _get_min_(self):
    """
    Getter method for min_, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/user/min (oc-types:percentage)

    YANG Description: The minimum value of the percentage measure of the
statistic over the time interval.
    """
    return self.__min_
      
  def _set_min_(self, v, load=False):
    """
    Setter method for min_, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/user/min (oc-types:percentage)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_min_ is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_min_() directly.

    YANG Description: The minimum value of the percentage measure of the
statistic over the time interval.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="min", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """min_ must be of a type compatible with oc-types:percentage""",
          'defined-type': "oc-types:percentage",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="min", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)""",
        })

    self.__min_ = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_min_(self):
    self.__min_ = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="min", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)


  def _get_max_(self):
    """
    Getter method for max_, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/user/max (oc-types:percentage)

    YANG Description: The maximum value of the percentage measure of the
statistic over the time interval.
    """
    return self.__max_
      
  def _set_max_(self, v, load=False):
    """
    Setter method for max_, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/user/max (oc-types:percentage)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_max_ is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_max_() directly.

    YANG Description: The maximum value of the percentage measure of the
statistic over the time interval.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="max", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """max_ must be of a type compatible with oc-types:percentage""",
          'defined-type': "oc-types:percentage",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="max", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)""",
        })

    self.__max_ = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_max_(self):
    self.__max_ = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="max", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)


  def _get_interval(self):
    """
    Getter method for interval, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/user/interval (oc-types:stat-interval)

    YANG Description: If supported by the system, this reports the time interval
over which the min/max/average statistics are computed by
the system.
    """
    return self.__interval
      
  def _set_interval(self, v, load=False):
    """
    Setter method for interval, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/user/interval (oc-types:stat-interval)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_interval is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_interval() directly.

    YANG Description: If supported by the system, this reports the time interval
over which the min/max/average statistics are computed by
the system.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:stat-interval', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """interval must be of a type compatible with oc-types:stat-interval""",
          'defined-type': "oc-types:stat-interval",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:stat-interval', is_config=False)""",
        })

    self.__interval = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_interval(self):
    self.__interval = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:stat-interval', is_config=False)


  def _get_min_time(self):
    """
    Getter method for min_time, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/user/min_time (oc-types:timeticks64)

    YANG Description: The absolute time at which the minimum value occurred.
The value is the timestamp in nanoseconds relative to
 the Unix Epoch (Jan 1, 1970 00:00:00 UTC).
    """
    return self.__min_time
      
  def _set_min_time(self, v, load=False):
    """
    Setter method for min_time, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/user/min_time (oc-types:timeticks64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_min_time is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_min_time() directly.

    YANG Description: The absolute time at which the minimum value occurred.
The value is the timestamp in nanoseconds relative to
 the Unix Epoch (Jan 1, 1970 00:00:00 UTC).
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="min-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """min_time must be of a type compatible with oc-types:timeticks64""",
          'defined-type': "oc-types:timeticks64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="min-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)""",
        })

    self.__min_time = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_min_time(self):
    self.__min_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="min-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)


  def _get_max_time(self):
    """
    Getter method for max_time, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/user/max_time (oc-types:timeticks64)

    YANG Description: The absolute time at which the maximum value occurred.
The value is the timestamp in nanoseconds relative to
 the Unix Epoch (Jan 1, 1970 00:00:00 UTC).
    """
    return self.__max_time
      
  def _set_max_time(self, v, load=False):
    """
    Setter method for max_time, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/user/max_time (oc-types:timeticks64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_max_time is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_max_time() directly.

    YANG Description: The absolute time at which the maximum value occurred.
The value is the timestamp in nanoseconds relative to
 the Unix Epoch (Jan 1, 1970 00:00:00 UTC).
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """max_time must be of a type compatible with oc-types:timeticks64""",
          'defined-type': "oc-types:timeticks64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)""",
        })

    self.__max_time = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_max_time(self):
    self.__max_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)

  instant = __builtin__.property(_get_instant)
  avg = __builtin__.property(_get_avg)
  min_ = __builtin__.property(_get_min_)
  max_ = __builtin__.property(_get_max_)
  interval = __builtin__.property(_get_interval)
  min_time = __builtin__.property(_get_min_time)
  max_time = __builtin__.property(_get_max_time)


  _pyangbind_elements = OrderedDict([('instant', instant), ('avg', avg), ('min_', min_), ('max_', max_), ('interval', interval), ('min_time', min_time), ('max_time', max_time), ])


class yc_kernel_openconfig_access_points__access_points_access_point_system_cpus_cpu_state_kernel(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/cpus/cpu/state/kernel. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Percentage of CPU time spent running in kernel space.
  """
  __slots__ = ('_path_helper', '_extmethods', '__instant','__avg','__min_','__max_','__interval','__min_time','__max_time',)

  _yang_name = 'kernel'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__instant = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="instant", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    self.__avg = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="avg", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    self.__min_ = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="min", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    self.__max_ = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="max", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    self.__interval = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:stat-interval', is_config=False)
    self.__min_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="min-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)
    self.__max_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', 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 ['access-points', 'access-point', 'system', 'cpus', 'cpu', 'state', 'kernel']

  def _get_instant(self):
    """
    Getter method for instant, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/kernel/instant (oc-types:percentage)

    YANG Description: The instantaneous percentage value.
    """
    return self.__instant
      
  def _set_instant(self, v, load=False):
    """
    Setter method for instant, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/kernel/instant (oc-types:percentage)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_instant is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_instant() directly.

    YANG Description: The instantaneous percentage value.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="instant", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """instant must be of a type compatible with oc-types:percentage""",
          'defined-type': "oc-types:percentage",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="instant", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)""",
        })

    self.__instant = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_instant(self):
    self.__instant = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="instant", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)


  def _get_avg(self):
    """
    Getter method for avg, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/kernel/avg (oc-types:percentage)

    YANG Description: The arithmetic mean value of the percentage measure of the
statistic over the time interval.
    """
    return self.__avg
      
  def _set_avg(self, v, load=False):
    """
    Setter method for avg, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/kernel/avg (oc-types:percentage)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_avg is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_avg() directly.

    YANG Description: The arithmetic mean value of the percentage measure of the
statistic over the time interval.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="avg", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """avg must be of a type compatible with oc-types:percentage""",
          'defined-type': "oc-types:percentage",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="avg", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)""",
        })

    self.__avg = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_avg(self):
    self.__avg = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="avg", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)


  def _get_min_(self):
    """
    Getter method for min_, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/kernel/min (oc-types:percentage)

    YANG Description: The minimum value of the percentage measure of the
statistic over the time interval.
    """
    return self.__min_
      
  def _set_min_(self, v, load=False):
    """
    Setter method for min_, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/kernel/min (oc-types:percentage)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_min_ is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_min_() directly.

    YANG Description: The minimum value of the percentage measure of the
statistic over the time interval.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="min", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """min_ must be of a type compatible with oc-types:percentage""",
          'defined-type': "oc-types:percentage",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="min", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)""",
        })

    self.__min_ = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_min_(self):
    self.__min_ = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="min", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)


  def _get_max_(self):
    """
    Getter method for max_, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/kernel/max (oc-types:percentage)

    YANG Description: The maximum value of the percentage measure of the
statistic over the time interval.
    """
    return self.__max_
      
  def _set_max_(self, v, load=False):
    """
    Setter method for max_, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/kernel/max (oc-types:percentage)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_max_ is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_max_() directly.

    YANG Description: The maximum value of the percentage measure of the
statistic over the time interval.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="max", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """max_ must be of a type compatible with oc-types:percentage""",
          'defined-type': "oc-types:percentage",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="max", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)""",
        })

    self.__max_ = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_max_(self):
    self.__max_ = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="max", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)


  def _get_interval(self):
    """
    Getter method for interval, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/kernel/interval (oc-types:stat-interval)

    YANG Description: If supported by the system, this reports the time interval
over which the min/max/average statistics are computed by
the system.
    """
    return self.__interval
      
  def _set_interval(self, v, load=False):
    """
    Setter method for interval, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/kernel/interval (oc-types:stat-interval)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_interval is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_interval() directly.

    YANG Description: If supported by the system, this reports the time interval
over which the min/max/average statistics are computed by
the system.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:stat-interval', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """interval must be of a type compatible with oc-types:stat-interval""",
          'defined-type': "oc-types:stat-interval",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:stat-interval', is_config=False)""",
        })

    self.__interval = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_interval(self):
    self.__interval = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:stat-interval', is_config=False)


  def _get_min_time(self):
    """
    Getter method for min_time, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/kernel/min_time (oc-types:timeticks64)

    YANG Description: The absolute time at which the minimum value occurred.
The value is the timestamp in nanoseconds relative to
 the Unix Epoch (Jan 1, 1970 00:00:00 UTC).
    """
    return self.__min_time
      
  def _set_min_time(self, v, load=False):
    """
    Setter method for min_time, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/kernel/min_time (oc-types:timeticks64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_min_time is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_min_time() directly.

    YANG Description: The absolute time at which the minimum value occurred.
The value is the timestamp in nanoseconds relative to
 the Unix Epoch (Jan 1, 1970 00:00:00 UTC).
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="min-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """min_time must be of a type compatible with oc-types:timeticks64""",
          'defined-type': "oc-types:timeticks64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="min-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)""",
        })

    self.__min_time = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_min_time(self):
    self.__min_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="min-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)


  def _get_max_time(self):
    """
    Getter method for max_time, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/kernel/max_time (oc-types:timeticks64)

    YANG Description: The absolute time at which the maximum value occurred.
The value is the timestamp in nanoseconds relative to
 the Unix Epoch (Jan 1, 1970 00:00:00 UTC).
    """
    return self.__max_time
      
  def _set_max_time(self, v, load=False):
    """
    Setter method for max_time, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/kernel/max_time (oc-types:timeticks64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_max_time is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_max_time() directly.

    YANG Description: The absolute time at which the maximum value occurred.
The value is the timestamp in nanoseconds relative to
 the Unix Epoch (Jan 1, 1970 00:00:00 UTC).
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """max_time must be of a type compatible with oc-types:timeticks64""",
          'defined-type': "oc-types:timeticks64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)""",
        })

    self.__max_time = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_max_time(self):
    self.__max_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)

  instant = __builtin__.property(_get_instant)
  avg = __builtin__.property(_get_avg)
  min_ = __builtin__.property(_get_min_)
  max_ = __builtin__.property(_get_max_)
  interval = __builtin__.property(_get_interval)
  min_time = __builtin__.property(_get_min_time)
  max_time = __builtin__.property(_get_max_time)


  _pyangbind_elements = OrderedDict([('instant', instant), ('avg', avg), ('min_', min_), ('max_', max_), ('interval', interval), ('min_time', min_time), ('max_time', max_time), ])


class yc_nice_openconfig_access_points__access_points_access_point_system_cpus_cpu_state_nice(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/cpus/cpu/state/nice. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Percentage of CPU time spent running low-priority (niced)
user processes.
  """
  __slots__ = ('_path_helper', '_extmethods', '__instant','__avg','__min_','__max_','__interval','__min_time','__max_time',)

  _yang_name = 'nice'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__instant = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="instant", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    self.__avg = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="avg", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    self.__min_ = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="min", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    self.__max_ = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="max", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    self.__interval = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:stat-interval', is_config=False)
    self.__min_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="min-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)
    self.__max_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', 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 ['access-points', 'access-point', 'system', 'cpus', 'cpu', 'state', 'nice']

  def _get_instant(self):
    """
    Getter method for instant, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/nice/instant (oc-types:percentage)

    YANG Description: The instantaneous percentage value.
    """
    return self.__instant
      
  def _set_instant(self, v, load=False):
    """
    Setter method for instant, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/nice/instant (oc-types:percentage)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_instant is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_instant() directly.

    YANG Description: The instantaneous percentage value.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="instant", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """instant must be of a type compatible with oc-types:percentage""",
          'defined-type': "oc-types:percentage",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="instant", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)""",
        })

    self.__instant = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_instant(self):
    self.__instant = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="instant", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)


  def _get_avg(self):
    """
    Getter method for avg, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/nice/avg (oc-types:percentage)

    YANG Description: The arithmetic mean value of the percentage measure of the
statistic over the time interval.
    """
    return self.__avg
      
  def _set_avg(self, v, load=False):
    """
    Setter method for avg, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/nice/avg (oc-types:percentage)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_avg is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_avg() directly.

    YANG Description: The arithmetic mean value of the percentage measure of the
statistic over the time interval.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="avg", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """avg must be of a type compatible with oc-types:percentage""",
          'defined-type': "oc-types:percentage",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="avg", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)""",
        })

    self.__avg = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_avg(self):
    self.__avg = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="avg", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)


  def _get_min_(self):
    """
    Getter method for min_, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/nice/min (oc-types:percentage)

    YANG Description: The minimum value of the percentage measure of the
statistic over the time interval.
    """
    return self.__min_
      
  def _set_min_(self, v, load=False):
    """
    Setter method for min_, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/nice/min (oc-types:percentage)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_min_ is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_min_() directly.

    YANG Description: The minimum value of the percentage measure of the
statistic over the time interval.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="min", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """min_ must be of a type compatible with oc-types:percentage""",
          'defined-type': "oc-types:percentage",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="min", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)""",
        })

    self.__min_ = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_min_(self):
    self.__min_ = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="min", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)


  def _get_max_(self):
    """
    Getter method for max_, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/nice/max (oc-types:percentage)

    YANG Description: The maximum value of the percentage measure of the
statistic over the time interval.
    """
    return self.__max_
      
  def _set_max_(self, v, load=False):
    """
    Setter method for max_, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/nice/max (oc-types:percentage)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_max_ is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_max_() directly.

    YANG Description: The maximum value of the percentage measure of the
statistic over the time interval.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="max", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """max_ must be of a type compatible with oc-types:percentage""",
          'defined-type': "oc-types:percentage",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="max", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)""",
        })

    self.__max_ = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_max_(self):
    self.__max_ = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="max", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)


  def _get_interval(self):
    """
    Getter method for interval, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/nice/interval (oc-types:stat-interval)

    YANG Description: If supported by the system, this reports the time interval
over which the min/max/average statistics are computed by
the system.
    """
    return self.__interval
      
  def _set_interval(self, v, load=False):
    """
    Setter method for interval, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/nice/interval (oc-types:stat-interval)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_interval is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_interval() directly.

    YANG Description: If supported by the system, this reports the time interval
over which the min/max/average statistics are computed by
the system.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:stat-interval', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """interval must be of a type compatible with oc-types:stat-interval""",
          'defined-type': "oc-types:stat-interval",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:stat-interval', is_config=False)""",
        })

    self.__interval = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_interval(self):
    self.__interval = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:stat-interval', is_config=False)


  def _get_min_time(self):
    """
    Getter method for min_time, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/nice/min_time (oc-types:timeticks64)

    YANG Description: The absolute time at which the minimum value occurred.
The value is the timestamp in nanoseconds relative to
 the Unix Epoch (Jan 1, 1970 00:00:00 UTC).
    """
    return self.__min_time
      
  def _set_min_time(self, v, load=False):
    """
    Setter method for min_time, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/nice/min_time (oc-types:timeticks64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_min_time is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_min_time() directly.

    YANG Description: The absolute time at which the minimum value occurred.
The value is the timestamp in nanoseconds relative to
 the Unix Epoch (Jan 1, 1970 00:00:00 UTC).
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="min-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """min_time must be of a type compatible with oc-types:timeticks64""",
          'defined-type': "oc-types:timeticks64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="min-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)""",
        })

    self.__min_time = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_min_time(self):
    self.__min_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="min-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)


  def _get_max_time(self):
    """
    Getter method for max_time, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/nice/max_time (oc-types:timeticks64)

    YANG Description: The absolute time at which the maximum value occurred.
The value is the timestamp in nanoseconds relative to
 the Unix Epoch (Jan 1, 1970 00:00:00 UTC).
    """
    return self.__max_time
      
  def _set_max_time(self, v, load=False):
    """
    Setter method for max_time, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/nice/max_time (oc-types:timeticks64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_max_time is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_max_time() directly.

    YANG Description: The absolute time at which the maximum value occurred.
The value is the timestamp in nanoseconds relative to
 the Unix Epoch (Jan 1, 1970 00:00:00 UTC).
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """max_time must be of a type compatible with oc-types:timeticks64""",
          'defined-type': "oc-types:timeticks64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)""",
        })

    self.__max_time = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_max_time(self):
    self.__max_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)

  instant = __builtin__.property(_get_instant)
  avg = __builtin__.property(_get_avg)
  min_ = __builtin__.property(_get_min_)
  max_ = __builtin__.property(_get_max_)
  interval = __builtin__.property(_get_interval)
  min_time = __builtin__.property(_get_min_time)
  max_time = __builtin__.property(_get_max_time)


  _pyangbind_elements = OrderedDict([('instant', instant), ('avg', avg), ('min_', min_), ('max_', max_), ('interval', interval), ('min_time', min_time), ('max_time', max_time), ])


class yc_idle_openconfig_access_points__access_points_access_point_system_cpus_cpu_state_idle(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/cpus/cpu/state/idle. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Percentage of CPU time spent idle.
  """
  __slots__ = ('_path_helper', '_extmethods', '__instant','__avg','__min_','__max_','__interval','__min_time','__max_time',)

  _yang_name = 'idle'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__instant = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="instant", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    self.__avg = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="avg", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    self.__min_ = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="min", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    self.__max_ = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="max", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    self.__interval = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:stat-interval', is_config=False)
    self.__min_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="min-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)
    self.__max_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', 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 ['access-points', 'access-point', 'system', 'cpus', 'cpu', 'state', 'idle']

  def _get_instant(self):
    """
    Getter method for instant, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/idle/instant (oc-types:percentage)

    YANG Description: The instantaneous percentage value.
    """
    return self.__instant
      
  def _set_instant(self, v, load=False):
    """
    Setter method for instant, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/idle/instant (oc-types:percentage)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_instant is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_instant() directly.

    YANG Description: The instantaneous percentage value.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="instant", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """instant must be of a type compatible with oc-types:percentage""",
          'defined-type': "oc-types:percentage",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="instant", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)""",
        })

    self.__instant = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_instant(self):
    self.__instant = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="instant", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)


  def _get_avg(self):
    """
    Getter method for avg, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/idle/avg (oc-types:percentage)

    YANG Description: The arithmetic mean value of the percentage measure of the
statistic over the time interval.
    """
    return self.__avg
      
  def _set_avg(self, v, load=False):
    """
    Setter method for avg, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/idle/avg (oc-types:percentage)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_avg is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_avg() directly.

    YANG Description: The arithmetic mean value of the percentage measure of the
statistic over the time interval.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="avg", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """avg must be of a type compatible with oc-types:percentage""",
          'defined-type': "oc-types:percentage",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="avg", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)""",
        })

    self.__avg = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_avg(self):
    self.__avg = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="avg", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)


  def _get_min_(self):
    """
    Getter method for min_, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/idle/min (oc-types:percentage)

    YANG Description: The minimum value of the percentage measure of the
statistic over the time interval.
    """
    return self.__min_
      
  def _set_min_(self, v, load=False):
    """
    Setter method for min_, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/idle/min (oc-types:percentage)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_min_ is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_min_() directly.

    YANG Description: The minimum value of the percentage measure of the
statistic over the time interval.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="min", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """min_ must be of a type compatible with oc-types:percentage""",
          'defined-type': "oc-types:percentage",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="min", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)""",
        })

    self.__min_ = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_min_(self):
    self.__min_ = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="min", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)


  def _get_max_(self):
    """
    Getter method for max_, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/idle/max (oc-types:percentage)

    YANG Description: The maximum value of the percentage measure of the
statistic over the time interval.
    """
    return self.__max_
      
  def _set_max_(self, v, load=False):
    """
    Setter method for max_, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/idle/max (oc-types:percentage)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_max_ is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_max_() directly.

    YANG Description: The maximum value of the percentage measure of the
statistic over the time interval.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="max", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """max_ must be of a type compatible with oc-types:percentage""",
          'defined-type': "oc-types:percentage",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="max", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)""",
        })

    self.__max_ = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_max_(self):
    self.__max_ = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="max", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)


  def _get_interval(self):
    """
    Getter method for interval, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/idle/interval (oc-types:stat-interval)

    YANG Description: If supported by the system, this reports the time interval
over which the min/max/average statistics are computed by
the system.
    """
    return self.__interval
      
  def _set_interval(self, v, load=False):
    """
    Setter method for interval, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/idle/interval (oc-types:stat-interval)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_interval is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_interval() directly.

    YANG Description: If supported by the system, this reports the time interval
over which the min/max/average statistics are computed by
the system.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:stat-interval', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """interval must be of a type compatible with oc-types:stat-interval""",
          'defined-type': "oc-types:stat-interval",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:stat-interval', is_config=False)""",
        })

    self.__interval = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_interval(self):
    self.__interval = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:stat-interval', is_config=False)


  def _get_min_time(self):
    """
    Getter method for min_time, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/idle/min_time (oc-types:timeticks64)

    YANG Description: The absolute time at which the minimum value occurred.
The value is the timestamp in nanoseconds relative to
 the Unix Epoch (Jan 1, 1970 00:00:00 UTC).
    """
    return self.__min_time
      
  def _set_min_time(self, v, load=False):
    """
    Setter method for min_time, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/idle/min_time (oc-types:timeticks64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_min_time is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_min_time() directly.

    YANG Description: The absolute time at which the minimum value occurred.
The value is the timestamp in nanoseconds relative to
 the Unix Epoch (Jan 1, 1970 00:00:00 UTC).
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="min-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """min_time must be of a type compatible with oc-types:timeticks64""",
          'defined-type': "oc-types:timeticks64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="min-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)""",
        })

    self.__min_time = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_min_time(self):
    self.__min_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="min-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)


  def _get_max_time(self):
    """
    Getter method for max_time, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/idle/max_time (oc-types:timeticks64)

    YANG Description: The absolute time at which the maximum value occurred.
The value is the timestamp in nanoseconds relative to
 the Unix Epoch (Jan 1, 1970 00:00:00 UTC).
    """
    return self.__max_time
      
  def _set_max_time(self, v, load=False):
    """
    Setter method for max_time, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/idle/max_time (oc-types:timeticks64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_max_time is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_max_time() directly.

    YANG Description: The absolute time at which the maximum value occurred.
The value is the timestamp in nanoseconds relative to
 the Unix Epoch (Jan 1, 1970 00:00:00 UTC).
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """max_time must be of a type compatible with oc-types:timeticks64""",
          'defined-type': "oc-types:timeticks64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)""",
        })

    self.__max_time = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_max_time(self):
    self.__max_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)

  instant = __builtin__.property(_get_instant)
  avg = __builtin__.property(_get_avg)
  min_ = __builtin__.property(_get_min_)
  max_ = __builtin__.property(_get_max_)
  interval = __builtin__.property(_get_interval)
  min_time = __builtin__.property(_get_min_time)
  max_time = __builtin__.property(_get_max_time)


  _pyangbind_elements = OrderedDict([('instant', instant), ('avg', avg), ('min_', min_), ('max_', max_), ('interval', interval), ('min_time', min_time), ('max_time', max_time), ])


class yc_wait_openconfig_access_points__access_points_access_point_system_cpus_cpu_state_wait(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/cpus/cpu/state/wait. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Percentage of CPU time spent waiting for I/O.
  """
  __slots__ = ('_path_helper', '_extmethods', '__instant','__avg','__min_','__max_','__interval','__min_time','__max_time',)

  _yang_name = 'wait'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__instant = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="instant", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    self.__avg = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="avg", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    self.__min_ = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="min", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    self.__max_ = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="max", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    self.__interval = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:stat-interval', is_config=False)
    self.__min_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="min-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)
    self.__max_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', 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 ['access-points', 'access-point', 'system', 'cpus', 'cpu', 'state', 'wait']

  def _get_instant(self):
    """
    Getter method for instant, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/wait/instant (oc-types:percentage)

    YANG Description: The instantaneous percentage value.
    """
    return self.__instant
      
  def _set_instant(self, v, load=False):
    """
    Setter method for instant, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/wait/instant (oc-types:percentage)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_instant is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_instant() directly.

    YANG Description: The instantaneous percentage value.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="instant", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """instant must be of a type compatible with oc-types:percentage""",
          'defined-type': "oc-types:percentage",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="instant", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)""",
        })

    self.__instant = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_instant(self):
    self.__instant = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="instant", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)


  def _get_avg(self):
    """
    Getter method for avg, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/wait/avg (oc-types:percentage)

    YANG Description: The arithmetic mean value of the percentage measure of the
statistic over the time interval.
    """
    return self.__avg
      
  def _set_avg(self, v, load=False):
    """
    Setter method for avg, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/wait/avg (oc-types:percentage)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_avg is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_avg() directly.

    YANG Description: The arithmetic mean value of the percentage measure of the
statistic over the time interval.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="avg", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """avg must be of a type compatible with oc-types:percentage""",
          'defined-type': "oc-types:percentage",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="avg", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)""",
        })

    self.__avg = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_avg(self):
    self.__avg = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="avg", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)


  def _get_min_(self):
    """
    Getter method for min_, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/wait/min (oc-types:percentage)

    YANG Description: The minimum value of the percentage measure of the
statistic over the time interval.
    """
    return self.__min_
      
  def _set_min_(self, v, load=False):
    """
    Setter method for min_, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/wait/min (oc-types:percentage)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_min_ is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_min_() directly.

    YANG Description: The minimum value of the percentage measure of the
statistic over the time interval.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="min", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """min_ must be of a type compatible with oc-types:percentage""",
          'defined-type': "oc-types:percentage",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="min", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)""",
        })

    self.__min_ = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_min_(self):
    self.__min_ = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="min", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)


  def _get_max_(self):
    """
    Getter method for max_, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/wait/max (oc-types:percentage)

    YANG Description: The maximum value of the percentage measure of the
statistic over the time interval.
    """
    return self.__max_
      
  def _set_max_(self, v, load=False):
    """
    Setter method for max_, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/wait/max (oc-types:percentage)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_max_ is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_max_() directly.

    YANG Description: The maximum value of the percentage measure of the
statistic over the time interval.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="max", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """max_ must be of a type compatible with oc-types:percentage""",
          'defined-type': "oc-types:percentage",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="max", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)""",
        })

    self.__max_ = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_max_(self):
    self.__max_ = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="max", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)


  def _get_interval(self):
    """
    Getter method for interval, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/wait/interval (oc-types:stat-interval)

    YANG Description: If supported by the system, this reports the time interval
over which the min/max/average statistics are computed by
the system.
    """
    return self.__interval
      
  def _set_interval(self, v, load=False):
    """
    Setter method for interval, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/wait/interval (oc-types:stat-interval)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_interval is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_interval() directly.

    YANG Description: If supported by the system, this reports the time interval
over which the min/max/average statistics are computed by
the system.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:stat-interval', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """interval must be of a type compatible with oc-types:stat-interval""",
          'defined-type': "oc-types:stat-interval",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:stat-interval', is_config=False)""",
        })

    self.__interval = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_interval(self):
    self.__interval = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:stat-interval', is_config=False)


  def _get_min_time(self):
    """
    Getter method for min_time, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/wait/min_time (oc-types:timeticks64)

    YANG Description: The absolute time at which the minimum value occurred.
The value is the timestamp in nanoseconds relative to
 the Unix Epoch (Jan 1, 1970 00:00:00 UTC).
    """
    return self.__min_time
      
  def _set_min_time(self, v, load=False):
    """
    Setter method for min_time, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/wait/min_time (oc-types:timeticks64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_min_time is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_min_time() directly.

    YANG Description: The absolute time at which the minimum value occurred.
The value is the timestamp in nanoseconds relative to
 the Unix Epoch (Jan 1, 1970 00:00:00 UTC).
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="min-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """min_time must be of a type compatible with oc-types:timeticks64""",
          'defined-type': "oc-types:timeticks64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="min-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)""",
        })

    self.__min_time = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_min_time(self):
    self.__min_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="min-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)


  def _get_max_time(self):
    """
    Getter method for max_time, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/wait/max_time (oc-types:timeticks64)

    YANG Description: The absolute time at which the maximum value occurred.
The value is the timestamp in nanoseconds relative to
 the Unix Epoch (Jan 1, 1970 00:00:00 UTC).
    """
    return self.__max_time
      
  def _set_max_time(self, v, load=False):
    """
    Setter method for max_time, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/wait/max_time (oc-types:timeticks64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_max_time is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_max_time() directly.

    YANG Description: The absolute time at which the maximum value occurred.
The value is the timestamp in nanoseconds relative to
 the Unix Epoch (Jan 1, 1970 00:00:00 UTC).
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """max_time must be of a type compatible with oc-types:timeticks64""",
          'defined-type': "oc-types:timeticks64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)""",
        })

    self.__max_time = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_max_time(self):
    self.__max_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)

  instant = __builtin__.property(_get_instant)
  avg = __builtin__.property(_get_avg)
  min_ = __builtin__.property(_get_min_)
  max_ = __builtin__.property(_get_max_)
  interval = __builtin__.property(_get_interval)
  min_time = __builtin__.property(_get_min_time)
  max_time = __builtin__.property(_get_max_time)


  _pyangbind_elements = OrderedDict([('instant', instant), ('avg', avg), ('min_', min_), ('max_', max_), ('interval', interval), ('min_time', min_time), ('max_time', max_time), ])


class yc_hardware_interrupt_openconfig_access_points__access_points_access_point_system_cpus_cpu_state_hardware_interrupt(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/cpus/cpu/state/hardware-interrupt. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Percentage of CPU time spent servicing hardware interrupts.
  """
  __slots__ = ('_path_helper', '_extmethods', '__instant','__avg','__min_','__max_','__interval','__min_time','__max_time',)

  _yang_name = 'hardware-interrupt'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__instant = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="instant", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    self.__avg = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="avg", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    self.__min_ = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="min", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    self.__max_ = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="max", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    self.__interval = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:stat-interval', is_config=False)
    self.__min_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="min-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)
    self.__max_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', 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 ['access-points', 'access-point', 'system', 'cpus', 'cpu', 'state', 'hardware-interrupt']

  def _get_instant(self):
    """
    Getter method for instant, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/hardware_interrupt/instant (oc-types:percentage)

    YANG Description: The instantaneous percentage value.
    """
    return self.__instant
      
  def _set_instant(self, v, load=False):
    """
    Setter method for instant, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/hardware_interrupt/instant (oc-types:percentage)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_instant is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_instant() directly.

    YANG Description: The instantaneous percentage value.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="instant", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """instant must be of a type compatible with oc-types:percentage""",
          'defined-type': "oc-types:percentage",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="instant", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)""",
        })

    self.__instant = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_instant(self):
    self.__instant = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="instant", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)


  def _get_avg(self):
    """
    Getter method for avg, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/hardware_interrupt/avg (oc-types:percentage)

    YANG Description: The arithmetic mean value of the percentage measure of the
statistic over the time interval.
    """
    return self.__avg
      
  def _set_avg(self, v, load=False):
    """
    Setter method for avg, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/hardware_interrupt/avg (oc-types:percentage)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_avg is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_avg() directly.

    YANG Description: The arithmetic mean value of the percentage measure of the
statistic over the time interval.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="avg", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """avg must be of a type compatible with oc-types:percentage""",
          'defined-type': "oc-types:percentage",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="avg", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)""",
        })

    self.__avg = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_avg(self):
    self.__avg = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="avg", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)


  def _get_min_(self):
    """
    Getter method for min_, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/hardware_interrupt/min (oc-types:percentage)

    YANG Description: The minimum value of the percentage measure of the
statistic over the time interval.
    """
    return self.__min_
      
  def _set_min_(self, v, load=False):
    """
    Setter method for min_, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/hardware_interrupt/min (oc-types:percentage)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_min_ is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_min_() directly.

    YANG Description: The minimum value of the percentage measure of the
statistic over the time interval.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="min", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """min_ must be of a type compatible with oc-types:percentage""",
          'defined-type': "oc-types:percentage",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="min", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)""",
        })

    self.__min_ = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_min_(self):
    self.__min_ = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="min", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)


  def _get_max_(self):
    """
    Getter method for max_, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/hardware_interrupt/max (oc-types:percentage)

    YANG Description: The maximum value of the percentage measure of the
statistic over the time interval.
    """
    return self.__max_
      
  def _set_max_(self, v, load=False):
    """
    Setter method for max_, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/hardware_interrupt/max (oc-types:percentage)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_max_ is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_max_() directly.

    YANG Description: The maximum value of the percentage measure of the
statistic over the time interval.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="max", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """max_ must be of a type compatible with oc-types:percentage""",
          'defined-type': "oc-types:percentage",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="max", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)""",
        })

    self.__max_ = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_max_(self):
    self.__max_ = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="max", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)


  def _get_interval(self):
    """
    Getter method for interval, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/hardware_interrupt/interval (oc-types:stat-interval)

    YANG Description: If supported by the system, this reports the time interval
over which the min/max/average statistics are computed by
the system.
    """
    return self.__interval
      
  def _set_interval(self, v, load=False):
    """
    Setter method for interval, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/hardware_interrupt/interval (oc-types:stat-interval)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_interval is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_interval() directly.

    YANG Description: If supported by the system, this reports the time interval
over which the min/max/average statistics are computed by
the system.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:stat-interval', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """interval must be of a type compatible with oc-types:stat-interval""",
          'defined-type': "oc-types:stat-interval",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:stat-interval', is_config=False)""",
        })

    self.__interval = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_interval(self):
    self.__interval = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:stat-interval', is_config=False)


  def _get_min_time(self):
    """
    Getter method for min_time, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/hardware_interrupt/min_time (oc-types:timeticks64)

    YANG Description: The absolute time at which the minimum value occurred.
The value is the timestamp in nanoseconds relative to
 the Unix Epoch (Jan 1, 1970 00:00:00 UTC).
    """
    return self.__min_time
      
  def _set_min_time(self, v, load=False):
    """
    Setter method for min_time, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/hardware_interrupt/min_time (oc-types:timeticks64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_min_time is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_min_time() directly.

    YANG Description: The absolute time at which the minimum value occurred.
The value is the timestamp in nanoseconds relative to
 the Unix Epoch (Jan 1, 1970 00:00:00 UTC).
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="min-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """min_time must be of a type compatible with oc-types:timeticks64""",
          'defined-type': "oc-types:timeticks64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="min-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)""",
        })

    self.__min_time = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_min_time(self):
    self.__min_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="min-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)


  def _get_max_time(self):
    """
    Getter method for max_time, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/hardware_interrupt/max_time (oc-types:timeticks64)

    YANG Description: The absolute time at which the maximum value occurred.
The value is the timestamp in nanoseconds relative to
 the Unix Epoch (Jan 1, 1970 00:00:00 UTC).
    """
    return self.__max_time
      
  def _set_max_time(self, v, load=False):
    """
    Setter method for max_time, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/hardware_interrupt/max_time (oc-types:timeticks64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_max_time is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_max_time() directly.

    YANG Description: The absolute time at which the maximum value occurred.
The value is the timestamp in nanoseconds relative to
 the Unix Epoch (Jan 1, 1970 00:00:00 UTC).
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """max_time must be of a type compatible with oc-types:timeticks64""",
          'defined-type': "oc-types:timeticks64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)""",
        })

    self.__max_time = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_max_time(self):
    self.__max_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)

  instant = __builtin__.property(_get_instant)
  avg = __builtin__.property(_get_avg)
  min_ = __builtin__.property(_get_min_)
  max_ = __builtin__.property(_get_max_)
  interval = __builtin__.property(_get_interval)
  min_time = __builtin__.property(_get_min_time)
  max_time = __builtin__.property(_get_max_time)


  _pyangbind_elements = OrderedDict([('instant', instant), ('avg', avg), ('min_', min_), ('max_', max_), ('interval', interval), ('min_time', min_time), ('max_time', max_time), ])


class yc_software_interrupt_openconfig_access_points__access_points_access_point_system_cpus_cpu_state_software_interrupt(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/cpus/cpu/state/software-interrupt. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Percentage of CPU time spent servicing software interrupts
  """
  __slots__ = ('_path_helper', '_extmethods', '__instant','__avg','__min_','__max_','__interval','__min_time','__max_time',)

  _yang_name = 'software-interrupt'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__instant = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="instant", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    self.__avg = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="avg", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    self.__min_ = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="min", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    self.__max_ = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="max", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    self.__interval = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:stat-interval', is_config=False)
    self.__min_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="min-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)
    self.__max_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', 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 ['access-points', 'access-point', 'system', 'cpus', 'cpu', 'state', 'software-interrupt']

  def _get_instant(self):
    """
    Getter method for instant, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/software_interrupt/instant (oc-types:percentage)

    YANG Description: The instantaneous percentage value.
    """
    return self.__instant
      
  def _set_instant(self, v, load=False):
    """
    Setter method for instant, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/software_interrupt/instant (oc-types:percentage)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_instant is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_instant() directly.

    YANG Description: The instantaneous percentage value.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="instant", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """instant must be of a type compatible with oc-types:percentage""",
          'defined-type': "oc-types:percentage",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="instant", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)""",
        })

    self.__instant = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_instant(self):
    self.__instant = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="instant", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)


  def _get_avg(self):
    """
    Getter method for avg, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/software_interrupt/avg (oc-types:percentage)

    YANG Description: The arithmetic mean value of the percentage measure of the
statistic over the time interval.
    """
    return self.__avg
      
  def _set_avg(self, v, load=False):
    """
    Setter method for avg, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/software_interrupt/avg (oc-types:percentage)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_avg is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_avg() directly.

    YANG Description: The arithmetic mean value of the percentage measure of the
statistic over the time interval.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="avg", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """avg must be of a type compatible with oc-types:percentage""",
          'defined-type': "oc-types:percentage",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="avg", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)""",
        })

    self.__avg = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_avg(self):
    self.__avg = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="avg", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)


  def _get_min_(self):
    """
    Getter method for min_, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/software_interrupt/min (oc-types:percentage)

    YANG Description: The minimum value of the percentage measure of the
statistic over the time interval.
    """
    return self.__min_
      
  def _set_min_(self, v, load=False):
    """
    Setter method for min_, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/software_interrupt/min (oc-types:percentage)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_min_ is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_min_() directly.

    YANG Description: The minimum value of the percentage measure of the
statistic over the time interval.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="min", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """min_ must be of a type compatible with oc-types:percentage""",
          'defined-type': "oc-types:percentage",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="min", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)""",
        })

    self.__min_ = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_min_(self):
    self.__min_ = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="min", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)


  def _get_max_(self):
    """
    Getter method for max_, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/software_interrupt/max (oc-types:percentage)

    YANG Description: The maximum value of the percentage measure of the
statistic over the time interval.
    """
    return self.__max_
      
  def _set_max_(self, v, load=False):
    """
    Setter method for max_, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/software_interrupt/max (oc-types:percentage)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_max_ is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_max_() directly.

    YANG Description: The maximum value of the percentage measure of the
statistic over the time interval.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="max", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """max_ must be of a type compatible with oc-types:percentage""",
          'defined-type': "oc-types:percentage",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="max", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)""",
        })

    self.__max_ = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_max_(self):
    self.__max_ = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="max", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:percentage', is_config=False)


  def _get_interval(self):
    """
    Getter method for interval, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/software_interrupt/interval (oc-types:stat-interval)

    YANG Description: If supported by the system, this reports the time interval
over which the min/max/average statistics are computed by
the system.
    """
    return self.__interval
      
  def _set_interval(self, v, load=False):
    """
    Setter method for interval, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/software_interrupt/interval (oc-types:stat-interval)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_interval is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_interval() directly.

    YANG Description: If supported by the system, this reports the time interval
over which the min/max/average statistics are computed by
the system.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:stat-interval', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """interval must be of a type compatible with oc-types:stat-interval""",
          'defined-type': "oc-types:stat-interval",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:stat-interval', is_config=False)""",
        })

    self.__interval = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_interval(self):
    self.__interval = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:stat-interval', is_config=False)


  def _get_min_time(self):
    """
    Getter method for min_time, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/software_interrupt/min_time (oc-types:timeticks64)

    YANG Description: The absolute time at which the minimum value occurred.
The value is the timestamp in nanoseconds relative to
 the Unix Epoch (Jan 1, 1970 00:00:00 UTC).
    """
    return self.__min_time
      
  def _set_min_time(self, v, load=False):
    """
    Setter method for min_time, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/software_interrupt/min_time (oc-types:timeticks64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_min_time is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_min_time() directly.

    YANG Description: The absolute time at which the minimum value occurred.
The value is the timestamp in nanoseconds relative to
 the Unix Epoch (Jan 1, 1970 00:00:00 UTC).
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="min-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """min_time must be of a type compatible with oc-types:timeticks64""",
          'defined-type': "oc-types:timeticks64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="min-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)""",
        })

    self.__min_time = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_min_time(self):
    self.__min_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="min-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)


  def _get_max_time(self):
    """
    Getter method for max_time, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/software_interrupt/max_time (oc-types:timeticks64)

    YANG Description: The absolute time at which the maximum value occurred.
The value is the timestamp in nanoseconds relative to
 the Unix Epoch (Jan 1, 1970 00:00:00 UTC).
    """
    return self.__max_time
      
  def _set_max_time(self, v, load=False):
    """
    Setter method for max_time, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/software_interrupt/max_time (oc-types:timeticks64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_max_time is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_max_time() directly.

    YANG Description: The absolute time at which the maximum value occurred.
The value is the timestamp in nanoseconds relative to
 the Unix Epoch (Jan 1, 1970 00:00:00 UTC).
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """max_time must be of a type compatible with oc-types:timeticks64""",
          'defined-type': "oc-types:timeticks64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)""",
        })

    self.__max_time = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_max_time(self):
    self.__max_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-types:timeticks64', is_config=False)

  instant = __builtin__.property(_get_instant)
  avg = __builtin__.property(_get_avg)
  min_ = __builtin__.property(_get_min_)
  max_ = __builtin__.property(_get_max_)
  interval = __builtin__.property(_get_interval)
  min_time = __builtin__.property(_get_min_time)
  max_time = __builtin__.property(_get_max_time)


  _pyangbind_elements = OrderedDict([('instant', instant), ('avg', avg), ('min_', min_), ('max_', max_), ('interval', interval), ('min_time', min_time), ('max_time', max_time), ])


class yc_state_openconfig_access_points__access_points_access_point_system_cpus_cpu_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/cpus/cpu/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Operational state data for the system CPU(s)
  """
  __slots__ = ('_path_helper', '_extmethods', '__index','__total','__user','__kernel','__nice','__idle','__wait','__hardware_interrupt','__software_interrupt',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__index = YANGDynClass(base=[RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'ALL': {}},),RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32),], is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='union', is_config=False)
    self.__total = YANGDynClass(base=yc_total_openconfig_access_points__access_points_access_point_system_cpus_cpu_state_total, is_container='container', yang_name="total", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)
    self.__user = YANGDynClass(base=yc_user_openconfig_access_points__access_points_access_point_system_cpus_cpu_state_user, is_container='container', yang_name="user", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)
    self.__kernel = YANGDynClass(base=yc_kernel_openconfig_access_points__access_points_access_point_system_cpus_cpu_state_kernel, is_container='container', yang_name="kernel", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)
    self.__nice = YANGDynClass(base=yc_nice_openconfig_access_points__access_points_access_point_system_cpus_cpu_state_nice, is_container='container', yang_name="nice", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)
    self.__idle = YANGDynClass(base=yc_idle_openconfig_access_points__access_points_access_point_system_cpus_cpu_state_idle, is_container='container', yang_name="idle", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)
    self.__wait = YANGDynClass(base=yc_wait_openconfig_access_points__access_points_access_point_system_cpus_cpu_state_wait, is_container='container', yang_name="wait", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)
    self.__hardware_interrupt = YANGDynClass(base=yc_hardware_interrupt_openconfig_access_points__access_points_access_point_system_cpus_cpu_state_hardware_interrupt, is_container='container', yang_name="hardware-interrupt", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)
    self.__software_interrupt = YANGDynClass(base=yc_software_interrupt_openconfig_access_points__access_points_access_point_system_cpus_cpu_state_software_interrupt, is_container='container', yang_name="software-interrupt", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', 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 ['access-points', 'access-point', 'system', 'cpus', 'cpu', 'state']

  def _get_index(self):
    """
    Getter method for index, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/index (union)

    YANG Description: The CPU index for each processor core on the system.  On a
single-core system, the index should be zero.  The ALL
index signifies an aggregation of the CPU utilization
statistics over all cores in the system.
    """
    return self.__index
      
  def _set_index(self, v, load=False):
    """
    Setter method for index, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/index (union)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_index is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_index() directly.

    YANG Description: The CPU index for each processor core on the system.  On a
single-core system, the index should be zero.  The ALL
index signifies an aggregation of the CPU utilization
statistics over all cores in the system.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=[RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'ALL': {}},),RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32),], is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='union', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """index must be of a type compatible with union""",
          'defined-type': "openconfig-access-points:union",
          'generated-type': """YANGDynClass(base=[RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'ALL': {}},),RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32),], is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='union', is_config=False)""",
        })

    self.__index = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_index(self):
    self.__index = YANGDynClass(base=[RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'ALL': {}},),RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32),], is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='union', is_config=False)


  def _get_total(self):
    """
    Getter method for total, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/total (container)

    YANG Description: Total CPU utilization.
    """
    return self.__total
      
  def _set_total(self, v, load=False):
    """
    Setter method for total, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/total (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_total is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_total() directly.

    YANG Description: Total CPU utilization.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_total_openconfig_access_points__access_points_access_point_system_cpus_cpu_state_total, is_container='container', yang_name="total", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """total must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_total_openconfig_access_points__access_points_access_point_system_cpus_cpu_state_total, is_container='container', yang_name="total", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)""",
        })

    self.__total = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_total(self):
    self.__total = YANGDynClass(base=yc_total_openconfig_access_points__access_points_access_point_system_cpus_cpu_state_total, is_container='container', yang_name="total", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)


  def _get_user(self):
    """
    Getter method for user, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/user (container)

    YANG Description: Percentage of CPU time spent running in user space.
    """
    return self.__user
      
  def _set_user(self, v, load=False):
    """
    Setter method for user, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/user (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_user is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_user() directly.

    YANG Description: Percentage of CPU time spent running in user space.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_user_openconfig_access_points__access_points_access_point_system_cpus_cpu_state_user, is_container='container', yang_name="user", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """user must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_user_openconfig_access_points__access_points_access_point_system_cpus_cpu_state_user, is_container='container', yang_name="user", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)""",
        })

    self.__user = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_user(self):
    self.__user = YANGDynClass(base=yc_user_openconfig_access_points__access_points_access_point_system_cpus_cpu_state_user, is_container='container', yang_name="user", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)


  def _get_kernel(self):
    """
    Getter method for kernel, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/kernel (container)

    YANG Description: Percentage of CPU time spent running in kernel space.
    """
    return self.__kernel
      
  def _set_kernel(self, v, load=False):
    """
    Setter method for kernel, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/kernel (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_kernel is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_kernel() directly.

    YANG Description: Percentage of CPU time spent running in kernel space.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_kernel_openconfig_access_points__access_points_access_point_system_cpus_cpu_state_kernel, is_container='container', yang_name="kernel", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """kernel must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_kernel_openconfig_access_points__access_points_access_point_system_cpus_cpu_state_kernel, is_container='container', yang_name="kernel", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)""",
        })

    self.__kernel = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_kernel(self):
    self.__kernel = YANGDynClass(base=yc_kernel_openconfig_access_points__access_points_access_point_system_cpus_cpu_state_kernel, is_container='container', yang_name="kernel", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)


  def _get_nice(self):
    """
    Getter method for nice, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/nice (container)

    YANG Description: Percentage of CPU time spent running low-priority (niced)
user processes.
    """
    return self.__nice
      
  def _set_nice(self, v, load=False):
    """
    Setter method for nice, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/nice (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_nice is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_nice() directly.

    YANG Description: Percentage of CPU time spent running low-priority (niced)
user processes.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_nice_openconfig_access_points__access_points_access_point_system_cpus_cpu_state_nice, is_container='container', yang_name="nice", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """nice must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_nice_openconfig_access_points__access_points_access_point_system_cpus_cpu_state_nice, is_container='container', yang_name="nice", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)""",
        })

    self.__nice = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_nice(self):
    self.__nice = YANGDynClass(base=yc_nice_openconfig_access_points__access_points_access_point_system_cpus_cpu_state_nice, is_container='container', yang_name="nice", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)


  def _get_idle(self):
    """
    Getter method for idle, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/idle (container)

    YANG Description: Percentage of CPU time spent idle.
    """
    return self.__idle
      
  def _set_idle(self, v, load=False):
    """
    Setter method for idle, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/idle (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_idle is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_idle() directly.

    YANG Description: Percentage of CPU time spent idle.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_idle_openconfig_access_points__access_points_access_point_system_cpus_cpu_state_idle, is_container='container', yang_name="idle", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """idle must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_idle_openconfig_access_points__access_points_access_point_system_cpus_cpu_state_idle, is_container='container', yang_name="idle", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)""",
        })

    self.__idle = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_idle(self):
    self.__idle = YANGDynClass(base=yc_idle_openconfig_access_points__access_points_access_point_system_cpus_cpu_state_idle, is_container='container', yang_name="idle", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)


  def _get_wait(self):
    """
    Getter method for wait, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/wait (container)

    YANG Description: Percentage of CPU time spent waiting for I/O.
    """
    return self.__wait
      
  def _set_wait(self, v, load=False):
    """
    Setter method for wait, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/wait (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_wait is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_wait() directly.

    YANG Description: Percentage of CPU time spent waiting for I/O.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_wait_openconfig_access_points__access_points_access_point_system_cpus_cpu_state_wait, is_container='container', yang_name="wait", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """wait must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_wait_openconfig_access_points__access_points_access_point_system_cpus_cpu_state_wait, is_container='container', yang_name="wait", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)""",
        })

    self.__wait = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_wait(self):
    self.__wait = YANGDynClass(base=yc_wait_openconfig_access_points__access_points_access_point_system_cpus_cpu_state_wait, is_container='container', yang_name="wait", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)


  def _get_hardware_interrupt(self):
    """
    Getter method for hardware_interrupt, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/hardware_interrupt (container)

    YANG Description: Percentage of CPU time spent servicing hardware interrupts.
    """
    return self.__hardware_interrupt
      
  def _set_hardware_interrupt(self, v, load=False):
    """
    Setter method for hardware_interrupt, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/hardware_interrupt (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_hardware_interrupt is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_hardware_interrupt() directly.

    YANG Description: Percentage of CPU time spent servicing hardware interrupts.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_hardware_interrupt_openconfig_access_points__access_points_access_point_system_cpus_cpu_state_hardware_interrupt, is_container='container', yang_name="hardware-interrupt", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """hardware_interrupt must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_hardware_interrupt_openconfig_access_points__access_points_access_point_system_cpus_cpu_state_hardware_interrupt, is_container='container', yang_name="hardware-interrupt", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)""",
        })

    self.__hardware_interrupt = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_hardware_interrupt(self):
    self.__hardware_interrupt = YANGDynClass(base=yc_hardware_interrupt_openconfig_access_points__access_points_access_point_system_cpus_cpu_state_hardware_interrupt, is_container='container', yang_name="hardware-interrupt", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)


  def _get_software_interrupt(self):
    """
    Getter method for software_interrupt, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/software_interrupt (container)

    YANG Description: Percentage of CPU time spent servicing software interrupts
    """
    return self.__software_interrupt
      
  def _set_software_interrupt(self, v, load=False):
    """
    Setter method for software_interrupt, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state/software_interrupt (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_software_interrupt is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_software_interrupt() directly.

    YANG Description: Percentage of CPU time spent servicing software interrupts
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_software_interrupt_openconfig_access_points__access_points_access_point_system_cpus_cpu_state_software_interrupt, is_container='container', yang_name="software-interrupt", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """software_interrupt must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_software_interrupt_openconfig_access_points__access_points_access_point_system_cpus_cpu_state_software_interrupt, is_container='container', yang_name="software-interrupt", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)""",
        })

    self.__software_interrupt = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_software_interrupt(self):
    self.__software_interrupt = YANGDynClass(base=yc_software_interrupt_openconfig_access_points__access_points_access_point_system_cpus_cpu_state_software_interrupt, is_container='container', yang_name="software-interrupt", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)

  index = __builtin__.property(_get_index)
  total = __builtin__.property(_get_total)
  user = __builtin__.property(_get_user)
  kernel = __builtin__.property(_get_kernel)
  nice = __builtin__.property(_get_nice)
  idle = __builtin__.property(_get_idle)
  wait = __builtin__.property(_get_wait)
  hardware_interrupt = __builtin__.property(_get_hardware_interrupt)
  software_interrupt = __builtin__.property(_get_software_interrupt)


  _pyangbind_elements = OrderedDict([('index', index), ('total', total), ('user', user), ('kernel', kernel), ('nice', nice), ('idle', idle), ('wait', wait), ('hardware_interrupt', hardware_interrupt), ('software_interrupt', software_interrupt), ])


class yc_cpu_openconfig_access_points__access_points_access_point_system_cpus_cpu(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/cpus/cpu. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: List of CPU cores on the system (including logical CPUs
on hyperthreaded systems), keyed by either a numerical
index, or the ALL value for an entry representing the
aggregation across all CPUs.
  """
  __slots__ = ('_path_helper', '_extmethods', '__index','__state',)

  _yang_name = 'cpu'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__index = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=False)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_cpus_cpu_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/wifi/access-points', defining_module='openconfig-access-points', 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 ['access-points', 'access-point', 'system', 'cpus', 'cpu']

  def _get_index(self):
    """
    Getter method for index, mapped from YANG variable /access_points/access_point/system/cpus/cpu/index (leafref)

    YANG Description: Reference to list key
    """
    return self.__index
      
  def _set_index(self, v, load=False):
    """
    Setter method for index, mapped from YANG variable /access_points/access_point/system/cpus/cpu/index (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_index is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_index() directly.

    YANG Description: Reference to list key
    """
    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="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """index must be of a type compatible with leafref""",
          'defined-type': "leafref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=False)""",
        })

    self.__index = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_index(self):
    self.__index = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=False)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/system/cpus/cpu/state (container)

    YANG Description: Operational state data for the system CPU(s)
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/system/cpus/cpu/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: Operational state data for the system CPU(s)
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_system_cpus_cpu_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/wifi/access-points', defining_module='openconfig-access-points', 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=yc_state_openconfig_access_points__access_points_access_point_system_cpus_cpu_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_cpus_cpu_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)

  index = __builtin__.property(_get_index)
  state = __builtin__.property(_get_state)


  _pyangbind_elements = OrderedDict([('index', index), ('state', state), ])


class yc_cpus_openconfig_access_points__access_points_access_point_system_cpus(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/cpus. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Enclosing container for the list of CPU cores on the
system
  """
  __slots__ = ('_path_helper', '_extmethods', '__cpu',)

  _yang_name = 'cpus'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__cpu = YANGDynClass(base=YANGListType("index",yc_cpu_openconfig_access_points__access_points_access_point_system_cpus_cpu, yang_name="cpu", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='index', extensions=None), is_container='list', yang_name="cpu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', 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 ['access-points', 'access-point', 'system', 'cpus']

  def _get_cpu(self):
    """
    Getter method for cpu, mapped from YANG variable /access_points/access_point/system/cpus/cpu (list)

    YANG Description: List of CPU cores on the system (including logical CPUs
on hyperthreaded systems), keyed by either a numerical
index, or the ALL value for an entry representing the
aggregation across all CPUs.
    """
    return self.__cpu
      
  def _set_cpu(self, v, load=False):
    """
    Setter method for cpu, mapped from YANG variable /access_points/access_point/system/cpus/cpu (list)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_cpu is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_cpu() directly.

    YANG Description: List of CPU cores on the system (including logical CPUs
on hyperthreaded systems), keyed by either a numerical
index, or the ALL value for an entry representing the
aggregation across all CPUs.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGListType("index",yc_cpu_openconfig_access_points__access_points_access_point_system_cpus_cpu, yang_name="cpu", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='index', extensions=None), is_container='list', yang_name="cpu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """cpu must be of a type compatible with list""",
          'defined-type': "list",
          'generated-type': """YANGDynClass(base=YANGListType("index",yc_cpu_openconfig_access_points__access_points_access_point_system_cpus_cpu, yang_name="cpu", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='index', extensions=None), is_container='list', yang_name="cpu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=False)""",
        })

    self.__cpu = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_cpu(self):
    self.__cpu = YANGDynClass(base=YANGListType("index",yc_cpu_openconfig_access_points__access_points_access_point_system_cpus_cpu, yang_name="cpu", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='index', extensions=None), is_container='list', yang_name="cpu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=False)

  cpu = __builtin__.property(_get_cpu)


  _pyangbind_elements = OrderedDict([('cpu', cpu), ])


class yc_config_openconfig_access_points__access_points_access_point_system_dns_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/dns/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Configuration data for the DNS resolver
  """
  __slots__ = ('_path_helper', '_extmethods', '__search',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__search = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(((([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.)*([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.?)|\\.)', 'length': ['1..253']})), is_leaf=False, yang_name="search", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:domain-name', is_config=True)

    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 ['access-points', 'access-point', 'system', 'dns', 'config']

  def _get_search(self):
    """
    Getter method for search, mapped from YANG variable /access_points/access_point/system/dns/config/search (oc-inet:domain-name)

    YANG Description: An ordered list of domains to search when resolving
a host name.
    """
    return self.__search
      
  def _set_search(self, v, load=False):
    """
    Setter method for search, mapped from YANG variable /access_points/access_point/system/dns/config/search (oc-inet:domain-name)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_search is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_search() directly.

    YANG Description: An ordered list of domains to search when resolving
a host name.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(((([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.)*([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.?)|\\.)', 'length': ['1..253']})), is_leaf=False, yang_name="search", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:domain-name', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """search must be of a type compatible with oc-inet:domain-name""",
          'defined-type': "oc-inet:domain-name",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(((([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.)*([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.?)|\\.)', 'length': ['1..253']})), is_leaf=False, yang_name="search", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:domain-name', is_config=True)""",
        })

    self.__search = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_search(self):
    self.__search = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(((([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.)*([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.?)|\\.)', 'length': ['1..253']})), is_leaf=False, yang_name="search", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:domain-name', is_config=True)

  search = __builtin__.property(_get_search, _set_search)


  _pyangbind_elements = OrderedDict([('search', search), ])


class yc_state_openconfig_access_points__access_points_access_point_system_dns_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/dns/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Operational state data for the DNS resolver
  """
  __slots__ = ('_path_helper', '_extmethods', '__search',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__search = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(((([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.)*([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.?)|\\.)', 'length': ['1..253']})), is_leaf=False, yang_name="search", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:domain-name', 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 ['access-points', 'access-point', 'system', 'dns', 'state']

  def _get_search(self):
    """
    Getter method for search, mapped from YANG variable /access_points/access_point/system/dns/state/search (oc-inet:domain-name)

    YANG Description: An ordered list of domains to search when resolving
a host name.
    """
    return self.__search
      
  def _set_search(self, v, load=False):
    """
    Setter method for search, mapped from YANG variable /access_points/access_point/system/dns/state/search (oc-inet:domain-name)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_search is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_search() directly.

    YANG Description: An ordered list of domains to search when resolving
a host name.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(((([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.)*([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.?)|\\.)', 'length': ['1..253']})), is_leaf=False, yang_name="search", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:domain-name', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """search must be of a type compatible with oc-inet:domain-name""",
          'defined-type': "oc-inet:domain-name",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(((([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.)*([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.?)|\\.)', 'length': ['1..253']})), is_leaf=False, yang_name="search", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:domain-name', is_config=False)""",
        })

    self.__search = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_search(self):
    self.__search = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(((([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.)*([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.?)|\\.)', 'length': ['1..253']})), is_leaf=False, yang_name="search", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:domain-name', is_config=False)

  search = __builtin__.property(_get_search)


  _pyangbind_elements = OrderedDict([('search', search), ])


class yc_config_openconfig_access_points__access_points_access_point_system_dns_servers_server_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/dns/servers/server/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Configuration data for each DNS resolver
  """
  __slots__ = ('_path_helper', '_extmethods', '__address','__port',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__address = YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),], is_leaf=True, yang_name="address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ip-address', is_config=True)
    self.__port = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16)(53), is_leaf=True, yang_name="port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:port-number', is_config=True)

    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 ['access-points', 'access-point', 'system', 'dns', 'servers', 'server', 'config']

  def _get_address(self):
    """
    Getter method for address, mapped from YANG variable /access_points/access_point/system/dns/servers/server/config/address (oc-inet:ip-address)

    YANG Description: The address of the DNS server, can be either IPv4
or IPv6.
    """
    return self.__address
      
  def _set_address(self, v, load=False):
    """
    Setter method for address, mapped from YANG variable /access_points/access_point/system/dns/servers/server/config/address (oc-inet:ip-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_address is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_address() directly.

    YANG Description: The address of the DNS server, can be either IPv4
or IPv6.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),], is_leaf=True, yang_name="address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ip-address', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """address must be of a type compatible with oc-inet:ip-address""",
          'defined-type': "oc-inet:ip-address",
          'generated-type': """YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),], is_leaf=True, yang_name="address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ip-address', is_config=True)""",
        })

    self.__address = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_address(self):
    self.__address = YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),], is_leaf=True, yang_name="address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ip-address', is_config=True)


  def _get_port(self):
    """
    Getter method for port, mapped from YANG variable /access_points/access_point/system/dns/servers/server/config/port (oc-inet:port-number)

    YANG Description: The port number of the DNS server.
    """
    return self.__port
      
  def _set_port(self, v, load=False):
    """
    Setter method for port, mapped from YANG variable /access_points/access_point/system/dns/servers/server/config/port (oc-inet:port-number)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_port is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_port() directly.

    YANG Description: The port number of the DNS server.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16)(53), is_leaf=True, yang_name="port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:port-number', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """port must be of a type compatible with oc-inet:port-number""",
          'defined-type': "oc-inet:port-number",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16)(53), is_leaf=True, yang_name="port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:port-number', is_config=True)""",
        })

    self.__port = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_port(self):
    self.__port = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16)(53), is_leaf=True, yang_name="port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:port-number', is_config=True)

  address = __builtin__.property(_get_address, _set_address)
  port = __builtin__.property(_get_port, _set_port)


  _pyangbind_elements = OrderedDict([('address', address), ('port', port), ])


class yc_state_openconfig_access_points__access_points_access_point_system_dns_servers_server_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/dns/servers/server/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Operational state data for each DNS resolver
  """
  __slots__ = ('_path_helper', '_extmethods', '__address','__port',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__address = YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),], is_leaf=True, yang_name="address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ip-address', is_config=False)
    self.__port = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16)(53), is_leaf=True, yang_name="port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:port-number', 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 ['access-points', 'access-point', 'system', 'dns', 'servers', 'server', 'state']

  def _get_address(self):
    """
    Getter method for address, mapped from YANG variable /access_points/access_point/system/dns/servers/server/state/address (oc-inet:ip-address)

    YANG Description: The address of the DNS server, can be either IPv4
or IPv6.
    """
    return self.__address
      
  def _set_address(self, v, load=False):
    """
    Setter method for address, mapped from YANG variable /access_points/access_point/system/dns/servers/server/state/address (oc-inet:ip-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_address is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_address() directly.

    YANG Description: The address of the DNS server, can be either IPv4
or IPv6.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),], is_leaf=True, yang_name="address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ip-address', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """address must be of a type compatible with oc-inet:ip-address""",
          'defined-type': "oc-inet:ip-address",
          'generated-type': """YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),], is_leaf=True, yang_name="address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ip-address', is_config=False)""",
        })

    self.__address = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_address(self):
    self.__address = YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),], is_leaf=True, yang_name="address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ip-address', is_config=False)


  def _get_port(self):
    """
    Getter method for port, mapped from YANG variable /access_points/access_point/system/dns/servers/server/state/port (oc-inet:port-number)

    YANG Description: The port number of the DNS server.
    """
    return self.__port
      
  def _set_port(self, v, load=False):
    """
    Setter method for port, mapped from YANG variable /access_points/access_point/system/dns/servers/server/state/port (oc-inet:port-number)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_port is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_port() directly.

    YANG Description: The port number of the DNS server.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16)(53), is_leaf=True, yang_name="port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:port-number', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """port must be of a type compatible with oc-inet:port-number""",
          'defined-type': "oc-inet:port-number",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16)(53), is_leaf=True, yang_name="port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:port-number', is_config=False)""",
        })

    self.__port = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_port(self):
    self.__port = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16)(53), is_leaf=True, yang_name="port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:port-number', is_config=False)

  address = __builtin__.property(_get_address)
  port = __builtin__.property(_get_port)


  _pyangbind_elements = OrderedDict([('address', address), ('port', port), ])


class yc_server_openconfig_access_points__access_points_access_point_system_dns_servers_server(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/dns/servers/server. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: List of the DNS servers that the resolver should query.

When the resolver is invoked by a calling application, it
sends the query to the first name server in this list.  If
no response has been received within 'timeout' seconds,
the resolver continues with the next server in the list.
If no response is received from any server, the resolver
continues with the first server again.  When the resolver
has traversed the list 'attempts' times without receiving
any response, it gives up and returns an error to the
calling application.

Implementations MAY limit the number of entries in this
list.
  """
  __slots__ = ('_path_helper', '_extmethods', '__address','__config','__state',)

  _yang_name = 'server'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__address = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_dns_servers_server_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_dns_servers_server_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'system', 'dns', 'servers', 'server']

  def _get_address(self):
    """
    Getter method for address, mapped from YANG variable /access_points/access_point/system/dns/servers/server/address (leafref)

    YANG Description: References the configured address of the DNS server
    """
    return self.__address
      
  def _set_address(self, v, load=False):
    """
    Setter method for address, mapped from YANG variable /access_points/access_point/system/dns/servers/server/address (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_address is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_address() directly.

    YANG Description: References the configured address of the DNS server
    """
    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="address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """address must be of a type compatible with leafref""",
          'defined-type': "leafref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)""",
        })

    self.__address = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_address(self):
    self.__address = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)


  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/system/dns/servers/server/config (container)

    YANG Description: Configuration data for each DNS resolver
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/system/dns/servers/server/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Configuration data for each DNS resolver
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_access_points__access_points_access_point_system_dns_servers_server_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_dns_servers_server_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_dns_servers_server_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/system/dns/servers/server/state (container)

    YANG Description: Operational state data for each DNS resolver
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/system/dns/servers/server/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: Operational state data for each DNS resolver
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_system_dns_servers_server_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_dns_servers_server_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_dns_servers_server_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

  address = __builtin__.property(_get_address, _set_address)
  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)


  _pyangbind_elements = OrderedDict([('address', address), ('config', config), ('state', state), ])


class yc_servers_openconfig_access_points__access_points_access_point_system_dns_servers(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/dns/servers. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Enclosing container for DNS resolver list
  """
  __slots__ = ('_path_helper', '_extmethods', '__server',)

  _yang_name = 'servers'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__server = YANGDynClass(base=YANGListType("address",yc_server_openconfig_access_points__access_points_access_point_system_dns_servers_server, yang_name="server", parent=self, is_container='list', user_ordered=True, path_helper=self._path_helper, yang_keys='address', extensions=None), is_container='list', yang_name="server", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)

    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 ['access-points', 'access-point', 'system', 'dns', 'servers']

  def _get_server(self):
    """
    Getter method for server, mapped from YANG variable /access_points/access_point/system/dns/servers/server (list)

    YANG Description: List of the DNS servers that the resolver should query.

When the resolver is invoked by a calling application, it
sends the query to the first name server in this list.  If
no response has been received within 'timeout' seconds,
the resolver continues with the next server in the list.
If no response is received from any server, the resolver
continues with the first server again.  When the resolver
has traversed the list 'attempts' times without receiving
any response, it gives up and returns an error to the
calling application.

Implementations MAY limit the number of entries in this
list.
    """
    return self.__server
      
  def _set_server(self, v, load=False):
    """
    Setter method for server, mapped from YANG variable /access_points/access_point/system/dns/servers/server (list)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_server is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_server() directly.

    YANG Description: List of the DNS servers that the resolver should query.

When the resolver is invoked by a calling application, it
sends the query to the first name server in this list.  If
no response has been received within 'timeout' seconds,
the resolver continues with the next server in the list.
If no response is received from any server, the resolver
continues with the first server again.  When the resolver
has traversed the list 'attempts' times without receiving
any response, it gives up and returns an error to the
calling application.

Implementations MAY limit the number of entries in this
list.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGListType("address",yc_server_openconfig_access_points__access_points_access_point_system_dns_servers_server, yang_name="server", parent=self, is_container='list', user_ordered=True, path_helper=self._path_helper, yang_keys='address', extensions=None), is_container='list', yang_name="server", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """server must be of a type compatible with list""",
          'defined-type': "list",
          'generated-type': """YANGDynClass(base=YANGListType("address",yc_server_openconfig_access_points__access_points_access_point_system_dns_servers_server, yang_name="server", parent=self, is_container='list', user_ordered=True, path_helper=self._path_helper, yang_keys='address', extensions=None), is_container='list', yang_name="server", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)""",
        })

    self.__server = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_server(self):
    self.__server = YANGDynClass(base=YANGListType("address",yc_server_openconfig_access_points__access_points_access_point_system_dns_servers_server, yang_name="server", parent=self, is_container='list', user_ordered=True, path_helper=self._path_helper, yang_keys='address', extensions=None), is_container='list', yang_name="server", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)

  server = __builtin__.property(_get_server, _set_server)


  _pyangbind_elements = OrderedDict([('server', server), ])


class yc_config_openconfig_access_points__access_points_access_point_system_dns_host_entries_host_entry_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/dns/host-entries/host-entry/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Configuration data for static host entries
  """
  __slots__ = ('_path_helper', '_extmethods', '__hostname','__alias','__ipv4_address','__ipv6_address',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__hostname = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="hostname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=True)
    self.__alias = YANGDynClass(unique=True, base=TypedListType(allowed_type=six.text_type), is_leaf=False, yang_name="alias", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=True)
    self.__ipv4_address = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'})), is_leaf=False, yang_name="ipv4-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ipv4-address', is_config=True)
    self.__ipv6_address = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'})), is_leaf=False, yang_name="ipv6-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ipv6-address', is_config=True)

    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 ['access-points', 'access-point', 'system', 'dns', 'host-entries', 'host-entry', 'config']

  def _get_hostname(self):
    """
    Getter method for hostname, mapped from YANG variable /access_points/access_point/system/dns/host_entries/host_entry/config/hostname (string)

    YANG Description: Hostname for the static DNS entry
    """
    return self.__hostname
      
  def _set_hostname(self, v, load=False):
    """
    Setter method for hostname, mapped from YANG variable /access_points/access_point/system/dns/host_entries/host_entry/config/hostname (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_hostname is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_hostname() directly.

    YANG Description: Hostname for the static DNS entry
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="hostname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """hostname must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="hostname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=True)""",
        })

    self.__hostname = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_hostname(self):
    self.__hostname = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="hostname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=True)


  def _get_alias(self):
    """
    Getter method for alias, mapped from YANG variable /access_points/access_point/system/dns/host_entries/host_entry/config/alias (string)

    YANG Description: Additional aliases for the hostname
    """
    return self.__alias
      
  def _set_alias(self, v, load=False):
    """
    Setter method for alias, mapped from YANG variable /access_points/access_point/system/dns/host_entries/host_entry/config/alias (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_alias is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_alias() directly.

    YANG Description: Additional aliases for the hostname
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=six.text_type), is_leaf=False, yang_name="alias", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """alias must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=six.text_type), is_leaf=False, yang_name="alias", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=True)""",
        })

    self.__alias = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_alias(self):
    self.__alias = YANGDynClass(unique=True, base=TypedListType(allowed_type=six.text_type), is_leaf=False, yang_name="alias", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=True)


  def _get_ipv4_address(self):
    """
    Getter method for ipv4_address, mapped from YANG variable /access_points/access_point/system/dns/host_entries/host_entry/config/ipv4_address (oc-inet:ipv4-address)

    YANG Description: List of IPv4 addresses for the host entry
    """
    return self.__ipv4_address
      
  def _set_ipv4_address(self, v, load=False):
    """
    Setter method for ipv4_address, mapped from YANG variable /access_points/access_point/system/dns/host_entries/host_entry/config/ipv4_address (oc-inet:ipv4-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ipv4_address is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ipv4_address() directly.

    YANG Description: List of IPv4 addresses for the host entry
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'})), is_leaf=False, yang_name="ipv4-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ipv4-address', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ipv4_address must be of a type compatible with oc-inet:ipv4-address""",
          'defined-type': "oc-inet:ipv4-address",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'})), is_leaf=False, yang_name="ipv4-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ipv4-address', is_config=True)""",
        })

    self.__ipv4_address = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ipv4_address(self):
    self.__ipv4_address = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'})), is_leaf=False, yang_name="ipv4-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ipv4-address', is_config=True)


  def _get_ipv6_address(self):
    """
    Getter method for ipv6_address, mapped from YANG variable /access_points/access_point/system/dns/host_entries/host_entry/config/ipv6_address (oc-inet:ipv6-address)

    YANG Description: List of IPv6 addresses for the host entry
    """
    return self.__ipv6_address
      
  def _set_ipv6_address(self, v, load=False):
    """
    Setter method for ipv6_address, mapped from YANG variable /access_points/access_point/system/dns/host_entries/host_entry/config/ipv6_address (oc-inet:ipv6-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ipv6_address is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ipv6_address() directly.

    YANG Description: List of IPv6 addresses for the host entry
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'})), is_leaf=False, yang_name="ipv6-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ipv6-address', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ipv6_address must be of a type compatible with oc-inet:ipv6-address""",
          'defined-type': "oc-inet:ipv6-address",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'})), is_leaf=False, yang_name="ipv6-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ipv6-address', is_config=True)""",
        })

    self.__ipv6_address = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ipv6_address(self):
    self.__ipv6_address = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'})), is_leaf=False, yang_name="ipv6-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ipv6-address', is_config=True)

  hostname = __builtin__.property(_get_hostname, _set_hostname)
  alias = __builtin__.property(_get_alias, _set_alias)
  ipv4_address = __builtin__.property(_get_ipv4_address, _set_ipv4_address)
  ipv6_address = __builtin__.property(_get_ipv6_address, _set_ipv6_address)


  _pyangbind_elements = OrderedDict([('hostname', hostname), ('alias', alias), ('ipv4_address', ipv4_address), ('ipv6_address', ipv6_address), ])


class yc_state_openconfig_access_points__access_points_access_point_system_dns_host_entries_host_entry_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/dns/host-entries/host-entry/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Operational state data for static host entries
  """
  __slots__ = ('_path_helper', '_extmethods', '__hostname','__alias','__ipv4_address','__ipv6_address',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__hostname = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="hostname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)
    self.__alias = YANGDynClass(unique=True, base=TypedListType(allowed_type=six.text_type), is_leaf=False, yang_name="alias", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)
    self.__ipv4_address = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'})), is_leaf=False, yang_name="ipv4-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ipv4-address', is_config=False)
    self.__ipv6_address = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'})), is_leaf=False, yang_name="ipv6-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ipv6-address', 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 ['access-points', 'access-point', 'system', 'dns', 'host-entries', 'host-entry', 'state']

  def _get_hostname(self):
    """
    Getter method for hostname, mapped from YANG variable /access_points/access_point/system/dns/host_entries/host_entry/state/hostname (string)

    YANG Description: Hostname for the static DNS entry
    """
    return self.__hostname
      
  def _set_hostname(self, v, load=False):
    """
    Setter method for hostname, mapped from YANG variable /access_points/access_point/system/dns/host_entries/host_entry/state/hostname (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_hostname is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_hostname() directly.

    YANG Description: Hostname for the static DNS entry
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="hostname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """hostname must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="hostname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)""",
        })

    self.__hostname = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_hostname(self):
    self.__hostname = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="hostname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)


  def _get_alias(self):
    """
    Getter method for alias, mapped from YANG variable /access_points/access_point/system/dns/host_entries/host_entry/state/alias (string)

    YANG Description: Additional aliases for the hostname
    """
    return self.__alias
      
  def _set_alias(self, v, load=False):
    """
    Setter method for alias, mapped from YANG variable /access_points/access_point/system/dns/host_entries/host_entry/state/alias (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_alias is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_alias() directly.

    YANG Description: Additional aliases for the hostname
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=six.text_type), is_leaf=False, yang_name="alias", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """alias must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=six.text_type), is_leaf=False, yang_name="alias", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)""",
        })

    self.__alias = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_alias(self):
    self.__alias = YANGDynClass(unique=True, base=TypedListType(allowed_type=six.text_type), is_leaf=False, yang_name="alias", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)


  def _get_ipv4_address(self):
    """
    Getter method for ipv4_address, mapped from YANG variable /access_points/access_point/system/dns/host_entries/host_entry/state/ipv4_address (oc-inet:ipv4-address)

    YANG Description: List of IPv4 addresses for the host entry
    """
    return self.__ipv4_address
      
  def _set_ipv4_address(self, v, load=False):
    """
    Setter method for ipv4_address, mapped from YANG variable /access_points/access_point/system/dns/host_entries/host_entry/state/ipv4_address (oc-inet:ipv4-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ipv4_address is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ipv4_address() directly.

    YANG Description: List of IPv4 addresses for the host entry
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'})), is_leaf=False, yang_name="ipv4-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ipv4-address', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ipv4_address must be of a type compatible with oc-inet:ipv4-address""",
          'defined-type': "oc-inet:ipv4-address",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'})), is_leaf=False, yang_name="ipv4-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ipv4-address', is_config=False)""",
        })

    self.__ipv4_address = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ipv4_address(self):
    self.__ipv4_address = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'})), is_leaf=False, yang_name="ipv4-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ipv4-address', is_config=False)


  def _get_ipv6_address(self):
    """
    Getter method for ipv6_address, mapped from YANG variable /access_points/access_point/system/dns/host_entries/host_entry/state/ipv6_address (oc-inet:ipv6-address)

    YANG Description: List of IPv6 addresses for the host entry
    """
    return self.__ipv6_address
      
  def _set_ipv6_address(self, v, load=False):
    """
    Setter method for ipv6_address, mapped from YANG variable /access_points/access_point/system/dns/host_entries/host_entry/state/ipv6_address (oc-inet:ipv6-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ipv6_address is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ipv6_address() directly.

    YANG Description: List of IPv6 addresses for the host entry
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'})), is_leaf=False, yang_name="ipv6-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ipv6-address', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ipv6_address must be of a type compatible with oc-inet:ipv6-address""",
          'defined-type': "oc-inet:ipv6-address",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'})), is_leaf=False, yang_name="ipv6-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ipv6-address', is_config=False)""",
        })

    self.__ipv6_address = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ipv6_address(self):
    self.__ipv6_address = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'})), is_leaf=False, yang_name="ipv6-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ipv6-address', is_config=False)

  hostname = __builtin__.property(_get_hostname)
  alias = __builtin__.property(_get_alias)
  ipv4_address = __builtin__.property(_get_ipv4_address)
  ipv6_address = __builtin__.property(_get_ipv6_address)


  _pyangbind_elements = OrderedDict([('hostname', hostname), ('alias', alias), ('ipv4_address', ipv4_address), ('ipv6_address', ipv6_address), ])


class yc_host_entry_openconfig_access_points__access_points_access_point_system_dns_host_entries_host_entry(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/dns/host-entries/host-entry. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: List of static host entries
  """
  __slots__ = ('_path_helper', '_extmethods', '__hostname','__config','__state',)

  _yang_name = 'host-entry'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__hostname = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="hostname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_dns_host_entries_host_entry_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_dns_host_entries_host_entry_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'system', 'dns', 'host-entries', 'host-entry']

  def _get_hostname(self):
    """
    Getter method for hostname, mapped from YANG variable /access_points/access_point/system/dns/host_entries/host_entry/hostname (leafref)

    YANG Description: Reference to the hostname list key
    """
    return self.__hostname
      
  def _set_hostname(self, v, load=False):
    """
    Setter method for hostname, mapped from YANG variable /access_points/access_point/system/dns/host_entries/host_entry/hostname (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_hostname is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_hostname() directly.

    YANG Description: Reference to the hostname list key
    """
    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="hostname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """hostname must be of a type compatible with leafref""",
          'defined-type': "leafref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="hostname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)""",
        })

    self.__hostname = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_hostname(self):
    self.__hostname = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="hostname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)


  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/system/dns/host_entries/host_entry/config (container)

    YANG Description: Configuration data for static host entries
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/system/dns/host_entries/host_entry/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Configuration data for static host entries
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_access_points__access_points_access_point_system_dns_host_entries_host_entry_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_dns_host_entries_host_entry_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_dns_host_entries_host_entry_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/system/dns/host_entries/host_entry/state (container)

    YANG Description: Operational state data for static host entries
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/system/dns/host_entries/host_entry/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: Operational state data for static host entries
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_system_dns_host_entries_host_entry_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_dns_host_entries_host_entry_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_dns_host_entries_host_entry_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

  hostname = __builtin__.property(_get_hostname, _set_hostname)
  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)


  _pyangbind_elements = OrderedDict([('hostname', hostname), ('config', config), ('state', state), ])


class yc_host_entries_openconfig_access_points__access_points_access_point_system_dns_host_entries(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/dns/host-entries. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Enclosing container for list of static host entries
  """
  __slots__ = ('_path_helper', '_extmethods', '__host_entry',)

  _yang_name = 'host-entries'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__host_entry = YANGDynClass(base=YANGListType("hostname",yc_host_entry_openconfig_access_points__access_points_access_point_system_dns_host_entries_host_entry, yang_name="host-entry", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='hostname', extensions=None), is_container='list', yang_name="host-entry", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)

    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 ['access-points', 'access-point', 'system', 'dns', 'host-entries']

  def _get_host_entry(self):
    """
    Getter method for host_entry, mapped from YANG variable /access_points/access_point/system/dns/host_entries/host_entry (list)

    YANG Description: List of static host entries
    """
    return self.__host_entry
      
  def _set_host_entry(self, v, load=False):
    """
    Setter method for host_entry, mapped from YANG variable /access_points/access_point/system/dns/host_entries/host_entry (list)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_host_entry is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_host_entry() directly.

    YANG Description: List of static host entries
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGListType("hostname",yc_host_entry_openconfig_access_points__access_points_access_point_system_dns_host_entries_host_entry, yang_name="host-entry", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='hostname', extensions=None), is_container='list', yang_name="host-entry", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """host_entry must be of a type compatible with list""",
          'defined-type': "list",
          'generated-type': """YANGDynClass(base=YANGListType("hostname",yc_host_entry_openconfig_access_points__access_points_access_point_system_dns_host_entries_host_entry, yang_name="host-entry", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='hostname', extensions=None), is_container='list', yang_name="host-entry", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)""",
        })

    self.__host_entry = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_host_entry(self):
    self.__host_entry = YANGDynClass(base=YANGListType("hostname",yc_host_entry_openconfig_access_points__access_points_access_point_system_dns_host_entries_host_entry, yang_name="host-entry", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='hostname', extensions=None), is_container='list', yang_name="host-entry", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)

  host_entry = __builtin__.property(_get_host_entry, _set_host_entry)


  _pyangbind_elements = OrderedDict([('host_entry', host_entry), ])


class yc_dns_openconfig_access_points__access_points_access_point_system_dns(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/dns. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Enclosing container for DNS resolver data
  """
  __slots__ = ('_path_helper', '_extmethods', '__config','__state','__servers','__host_entries',)

  _yang_name = 'dns'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_dns_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_dns_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__servers = YANGDynClass(base=yc_servers_openconfig_access_points__access_points_access_point_system_dns_servers, is_container='container', yang_name="servers", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__host_entries = YANGDynClass(base=yc_host_entries_openconfig_access_points__access_points_access_point_system_dns_host_entries, is_container='container', yang_name="host-entries", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'system', 'dns']

  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/system/dns/config (container)

    YANG Description: Configuration data for the DNS resolver
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/system/dns/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Configuration data for the DNS resolver
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_access_points__access_points_access_point_system_dns_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_dns_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_dns_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/system/dns/state (container)

    YANG Description: Operational state data for the DNS resolver
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/system/dns/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: Operational state data for the DNS resolver
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_system_dns_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_dns_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_dns_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_servers(self):
    """
    Getter method for servers, mapped from YANG variable /access_points/access_point/system/dns/servers (container)

    YANG Description: Enclosing container for DNS resolver list
    """
    return self.__servers
      
  def _set_servers(self, v, load=False):
    """
    Setter method for servers, mapped from YANG variable /access_points/access_point/system/dns/servers (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_servers is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_servers() directly.

    YANG Description: Enclosing container for DNS resolver list
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_servers_openconfig_access_points__access_points_access_point_system_dns_servers, is_container='container', yang_name="servers", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """servers must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_servers_openconfig_access_points__access_points_access_point_system_dns_servers, is_container='container', yang_name="servers", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__servers = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_servers(self):
    self.__servers = YANGDynClass(base=yc_servers_openconfig_access_points__access_points_access_point_system_dns_servers, is_container='container', yang_name="servers", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_host_entries(self):
    """
    Getter method for host_entries, mapped from YANG variable /access_points/access_point/system/dns/host_entries (container)

    YANG Description: Enclosing container for list of static host entries
    """
    return self.__host_entries
      
  def _set_host_entries(self, v, load=False):
    """
    Setter method for host_entries, mapped from YANG variable /access_points/access_point/system/dns/host_entries (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_host_entries is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_host_entries() directly.

    YANG Description: Enclosing container for list of static host entries
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_host_entries_openconfig_access_points__access_points_access_point_system_dns_host_entries, is_container='container', yang_name="host-entries", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """host_entries must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_host_entries_openconfig_access_points__access_points_access_point_system_dns_host_entries, is_container='container', yang_name="host-entries", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__host_entries = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_host_entries(self):
    self.__host_entries = YANGDynClass(base=yc_host_entries_openconfig_access_points__access_points_access_point_system_dns_host_entries, is_container='container', yang_name="host-entries", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)
  servers = __builtin__.property(_get_servers, _set_servers)
  host_entries = __builtin__.property(_get_host_entries, _set_host_entries)


  _pyangbind_elements = OrderedDict([('config', config), ('state', state), ('servers', servers), ('host_entries', host_entries), ])


class yc_config_openconfig_access_points__access_points_access_point_system_mac_address_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/mac-address/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Configuration data for routing MAC address.
  """
  __slots__ = ('_path_helper', '_extmethods', '__routing_mac',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__routing_mac = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="routing-mac", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:mac-address', is_config=True)

    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 ['access-points', 'access-point', 'system', 'mac-address', 'config']

  def _get_routing_mac(self):
    """
    Getter method for routing_mac, mapped from YANG variable /access_points/access_point/system/mac_address/config/routing_mac (oc-yang:mac-address)

    YANG Description: Any packets destined to this MAC address must be sent through the
routing pipeline by the system. This MAC address is used to identify
routed packets in addition to any other MAC addresses that the system
may already have been using to perform routing.

It is not expected that this MAC address will be used as the
source MAC address of any routed packet, as the source MAC address of
any packets generated by the system, or a MAC address used in ARP
response. This MAC address may not be allocated from the block of
MAC address that system owns. For instance, it's allocation could
be managed by an external controller.
    """
    return self.__routing_mac
      
  def _set_routing_mac(self, v, load=False):
    """
    Setter method for routing_mac, mapped from YANG variable /access_points/access_point/system/mac_address/config/routing_mac (oc-yang:mac-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_routing_mac is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_routing_mac() directly.

    YANG Description: Any packets destined to this MAC address must be sent through the
routing pipeline by the system. This MAC address is used to identify
routed packets in addition to any other MAC addresses that the system
may already have been using to perform routing.

It is not expected that this MAC address will be used as the
source MAC address of any routed packet, as the source MAC address of
any packets generated by the system, or a MAC address used in ARP
response. This MAC address may not be allocated from the block of
MAC address that system owns. For instance, it's allocation could
be managed by an external controller.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="routing-mac", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:mac-address', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """routing_mac must be of a type compatible with oc-yang:mac-address""",
          'defined-type': "oc-yang:mac-address",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="routing-mac", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:mac-address', is_config=True)""",
        })

    self.__routing_mac = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_routing_mac(self):
    self.__routing_mac = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="routing-mac", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:mac-address', is_config=True)

  routing_mac = __builtin__.property(_get_routing_mac, _set_routing_mac)


  _pyangbind_elements = OrderedDict([('routing_mac', routing_mac), ])


class yc_state_openconfig_access_points__access_points_access_point_system_mac_address_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/mac-address/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Operational state data for routing MAC address.
  """
  __slots__ = ('_path_helper', '_extmethods', '__routing_mac',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__routing_mac = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="routing-mac", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:mac-address', 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 ['access-points', 'access-point', 'system', 'mac-address', 'state']

  def _get_routing_mac(self):
    """
    Getter method for routing_mac, mapped from YANG variable /access_points/access_point/system/mac_address/state/routing_mac (oc-yang:mac-address)

    YANG Description: Any packets destined to this MAC address must be sent through the
routing pipeline by the system. This MAC address is used to identify
routed packets in addition to any other MAC addresses that the system
may already have been using to perform routing.

It is not expected that this MAC address will be used as the
source MAC address of any routed packet, as the source MAC address of
any packets generated by the system, or a MAC address used in ARP
response. This MAC address may not be allocated from the block of
MAC address that system owns. For instance, it's allocation could
be managed by an external controller.
    """
    return self.__routing_mac
      
  def _set_routing_mac(self, v, load=False):
    """
    Setter method for routing_mac, mapped from YANG variable /access_points/access_point/system/mac_address/state/routing_mac (oc-yang:mac-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_routing_mac is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_routing_mac() directly.

    YANG Description: Any packets destined to this MAC address must be sent through the
routing pipeline by the system. This MAC address is used to identify
routed packets in addition to any other MAC addresses that the system
may already have been using to perform routing.

It is not expected that this MAC address will be used as the
source MAC address of any routed packet, as the source MAC address of
any packets generated by the system, or a MAC address used in ARP
response. This MAC address may not be allocated from the block of
MAC address that system owns. For instance, it's allocation could
be managed by an external controller.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="routing-mac", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:mac-address', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """routing_mac must be of a type compatible with oc-yang:mac-address""",
          'defined-type': "oc-yang:mac-address",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="routing-mac", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:mac-address', is_config=False)""",
        })

    self.__routing_mac = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_routing_mac(self):
    self.__routing_mac = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="routing-mac", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:mac-address', is_config=False)

  routing_mac = __builtin__.property(_get_routing_mac)


  _pyangbind_elements = OrderedDict([('routing_mac', routing_mac), ])


class yc_mac_address_openconfig_access_points__access_points_access_point_system_mac_address(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/mac-address. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Top-level container for system's MAC address configuration and state
  """
  __slots__ = ('_path_helper', '_extmethods', '__config','__state',)

  _yang_name = 'mac-address'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_mac_address_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_mac_address_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'system', 'mac-address']

  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/system/mac_address/config (container)

    YANG Description: Configuration data for routing MAC address.
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/system/mac_address/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Configuration data for routing MAC address.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_access_points__access_points_access_point_system_mac_address_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_mac_address_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_mac_address_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/system/mac_address/state (container)

    YANG Description: Operational state data for routing MAC address.
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/system/mac_address/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: Operational state data for routing MAC address.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_system_mac_address_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_mac_address_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_mac_address_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)


  _pyangbind_elements = OrderedDict([('config', config), ('state', state), ])


class yc_counters_openconfig_access_points__access_points_access_point_system_memory_state_counters(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/memory/state/counters. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Counters for tracking system memory errors
  """
  __slots__ = ('_path_helper', '_extmethods', '__correctable_ecc_errors','__uncorrectable_ecc_errors','__total_ecc_errors',)

  _yang_name = 'counters'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__correctable_ecc_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="correctable-ecc-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint64', is_config=False)
    self.__uncorrectable_ecc_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="uncorrectable-ecc-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint64', is_config=False)
    self.__total_ecc_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="total-ecc-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint64', 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 ['access-points', 'access-point', 'system', 'memory', 'state', 'counters']

  def _get_correctable_ecc_errors(self):
    """
    Getter method for correctable_ecc_errors, mapped from YANG variable /access_points/access_point/system/memory/state/counters/correctable_ecc_errors (uint64)

    YANG Description: Count of correctable ECC errors. Systems with ECC memory
are capable of correcting Single-bit ECC errors.
    """
    return self.__correctable_ecc_errors
      
  def _set_correctable_ecc_errors(self, v, load=False):
    """
    Setter method for correctable_ecc_errors, mapped from YANG variable /access_points/access_point/system/memory/state/counters/correctable_ecc_errors (uint64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_correctable_ecc_errors is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_correctable_ecc_errors() directly.

    YANG Description: Count of correctable ECC errors. Systems with ECC memory
are capable of correcting Single-bit ECC errors.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="correctable-ecc-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """correctable_ecc_errors must be of a type compatible with uint64""",
          'defined-type': "uint64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="correctable-ecc-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint64', is_config=False)""",
        })

    self.__correctable_ecc_errors = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_correctable_ecc_errors(self):
    self.__correctable_ecc_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="correctable-ecc-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint64', is_config=False)


  def _get_uncorrectable_ecc_errors(self):
    """
    Getter method for uncorrectable_ecc_errors, mapped from YANG variable /access_points/access_point/system/memory/state/counters/uncorrectable_ecc_errors (uint64)

    YANG Description: Count of uncorrectable ECC errors. Systems with ECC
memory are capable of detecting multi-bit ECC errors,
but cannot correct them.
    """
    return self.__uncorrectable_ecc_errors
      
  def _set_uncorrectable_ecc_errors(self, v, load=False):
    """
    Setter method for uncorrectable_ecc_errors, mapped from YANG variable /access_points/access_point/system/memory/state/counters/uncorrectable_ecc_errors (uint64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_uncorrectable_ecc_errors is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_uncorrectable_ecc_errors() directly.

    YANG Description: Count of uncorrectable ECC errors. Systems with ECC
memory are capable of detecting multi-bit ECC errors,
but cannot correct them.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="uncorrectable-ecc-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """uncorrectable_ecc_errors must be of a type compatible with uint64""",
          'defined-type': "uint64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="uncorrectable-ecc-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint64', is_config=False)""",
        })

    self.__uncorrectable_ecc_errors = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_uncorrectable_ecc_errors(self):
    self.__uncorrectable_ecc_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="uncorrectable-ecc-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint64', is_config=False)


  def _get_total_ecc_errors(self):
    """
    Getter method for total_ecc_errors, mapped from YANG variable /access_points/access_point/system/memory/state/counters/total_ecc_errors (uint64)

    YANG Description: Count of total ECC errors, this includes both correctable
and uncorrectable ECC errors.
    """
    return self.__total_ecc_errors
      
  def _set_total_ecc_errors(self, v, load=False):
    """
    Setter method for total_ecc_errors, mapped from YANG variable /access_points/access_point/system/memory/state/counters/total_ecc_errors (uint64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_total_ecc_errors is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_total_ecc_errors() directly.

    YANG Description: Count of total ECC errors, this includes both correctable
and uncorrectable ECC errors.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="total-ecc-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """total_ecc_errors must be of a type compatible with uint64""",
          'defined-type': "uint64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="total-ecc-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint64', is_config=False)""",
        })

    self.__total_ecc_errors = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_total_ecc_errors(self):
    self.__total_ecc_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="total-ecc-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint64', is_config=False)

  correctable_ecc_errors = __builtin__.property(_get_correctable_ecc_errors)
  uncorrectable_ecc_errors = __builtin__.property(_get_uncorrectable_ecc_errors)
  total_ecc_errors = __builtin__.property(_get_total_ecc_errors)


  _pyangbind_elements = OrderedDict([('correctable_ecc_errors', correctable_ecc_errors), ('uncorrectable_ecc_errors', uncorrectable_ecc_errors), ('total_ecc_errors', total_ecc_errors), ])


class yc_state_openconfig_access_points__access_points_access_point_system_memory_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/memory/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Operational state data for system memory
  """
  __slots__ = ('_path_helper', '_extmethods', '__counters','__physical','__reserved','__used','__free',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__counters = YANGDynClass(base=yc_counters_openconfig_access_points__access_points_access_point_system_memory_state_counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)
    self.__physical = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="physical", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint64', is_config=False)
    self.__reserved = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="reserved", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint64', is_config=False)
    self.__used = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="used", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint64', is_config=False)
    self.__free = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="free", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint64', 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 ['access-points', 'access-point', 'system', 'memory', 'state']

  def _get_counters(self):
    """
    Getter method for counters, mapped from YANG variable /access_points/access_point/system/memory/state/counters (container)

    YANG Description: Counters for tracking system memory errors
    """
    return self.__counters
      
  def _set_counters(self, v, load=False):
    """
    Setter method for counters, mapped from YANG variable /access_points/access_point/system/memory/state/counters (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_counters is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_counters() directly.

    YANG Description: Counters for tracking system memory errors
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_counters_openconfig_access_points__access_points_access_point_system_memory_state_counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """counters must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_counters_openconfig_access_points__access_points_access_point_system_memory_state_counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)""",
        })

    self.__counters = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_counters(self):
    self.__counters = YANGDynClass(base=yc_counters_openconfig_access_points__access_points_access_point_system_memory_state_counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=False)


  def _get_physical(self):
    """
    Getter method for physical, mapped from YANG variable /access_points/access_point/system/memory/state/physical (uint64)

    YANG Description: Reports the total physical memory available on the
system.
    """
    return self.__physical
      
  def _set_physical(self, v, load=False):
    """
    Setter method for physical, mapped from YANG variable /access_points/access_point/system/memory/state/physical (uint64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_physical is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_physical() directly.

    YANG Description: Reports the total physical memory available on the
system.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="physical", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """physical must be of a type compatible with uint64""",
          'defined-type': "uint64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="physical", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint64', is_config=False)""",
        })

    self.__physical = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_physical(self):
    self.__physical = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="physical", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint64', is_config=False)


  def _get_reserved(self):
    """
    Getter method for reserved, mapped from YANG variable /access_points/access_point/system/memory/state/reserved (uint64)

    YANG Description: Memory reserved for system use
    """
    return self.__reserved
      
  def _set_reserved(self, v, load=False):
    """
    Setter method for reserved, mapped from YANG variable /access_points/access_point/system/memory/state/reserved (uint64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_reserved is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_reserved() directly.

    YANG Description: Memory reserved for system use
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="reserved", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """reserved must be of a type compatible with uint64""",
          'defined-type': "uint64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="reserved", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint64', is_config=False)""",
        })

    self.__reserved = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_reserved(self):
    self.__reserved = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="reserved", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint64', is_config=False)


  def _get_used(self):
    """
    Getter method for used, mapped from YANG variable /access_points/access_point/system/memory/state/used (uint64)

    YANG Description: Memory that has been used and not available for allocation.
    """
    return self.__used
      
  def _set_used(self, v, load=False):
    """
    Setter method for used, mapped from YANG variable /access_points/access_point/system/memory/state/used (uint64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_used is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_used() directly.

    YANG Description: Memory that has been used and not available for allocation.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="used", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """used must be of a type compatible with uint64""",
          'defined-type': "uint64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="used", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint64', is_config=False)""",
        })

    self.__used = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_used(self):
    self.__used = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="used", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint64', is_config=False)


  def _get_free(self):
    """
    Getter method for free, mapped from YANG variable /access_points/access_point/system/memory/state/free (uint64)

    YANG Description: Memory that is not used and is available for allocation.
    """
    return self.__free
      
  def _set_free(self, v, load=False):
    """
    Setter method for free, mapped from YANG variable /access_points/access_point/system/memory/state/free (uint64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_free is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_free() directly.

    YANG Description: Memory that is not used and is available for allocation.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="free", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """free must be of a type compatible with uint64""",
          'defined-type': "uint64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="free", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint64', is_config=False)""",
        })

    self.__free = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_free(self):
    self.__free = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="free", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint64', is_config=False)

  counters = __builtin__.property(_get_counters)
  physical = __builtin__.property(_get_physical)
  reserved = __builtin__.property(_get_reserved)
  used = __builtin__.property(_get_used)
  free = __builtin__.property(_get_free)


  _pyangbind_elements = OrderedDict([('counters', counters), ('physical', physical), ('reserved', reserved), ('used', used), ('free', free), ])


class yc_memory_openconfig_access_points__access_points_access_point_system_memory(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/memory. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Top-level container for system memory data
  """
  __slots__ = ('_path_helper', '_extmethods', '__state',)

  _yang_name = 'memory'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_memory_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'system', 'memory']

  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/system/memory/state (container)

    YANG Description: Operational state data for system memory
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/system/memory/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: Operational state data for system memory
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_system_memory_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_memory_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_memory_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

  state = __builtin__.property(_get_state, _set_state)


  _pyangbind_elements = OrderedDict([('state', state), ])


class yc_config_openconfig_access_points__access_points_access_point_system_ntp_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/ntp/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Configuration data for NTP client.
  """
  __slots__ = ('_path_helper', '_extmethods', '__enabled','__enable_ntp_auth',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)
    self.__enable_ntp_auth = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enable-ntp-auth", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)

    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 ['access-points', 'access-point', 'system', 'ntp', 'config']

  def _get_enabled(self):
    """
    Getter method for enabled, mapped from YANG variable /access_points/access_point/system/ntp/config/enabled (boolean)

    YANG Description: Enables and disables the NTP protocol and indicates that the system should
attempt to synchronize the system clock with an NTP server
from the servers defined in the 'ntp/server' list.
    """
    return self.__enabled
      
  def _set_enabled(self, v, load=False):
    """
    Setter method for enabled, mapped from YANG variable /access_points/access_point/system/ntp/config/enabled (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_enabled is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_enabled() directly.

    YANG Description: Enables and disables the NTP protocol and indicates that the system should
attempt to synchronize the system clock with an NTP server
from the servers defined in the 'ntp/server' list.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """enabled must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)""",
        })

    self.__enabled = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_enabled(self):
    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)


  def _get_enable_ntp_auth(self):
    """
    Getter method for enable_ntp_auth, mapped from YANG variable /access_points/access_point/system/ntp/config/enable_ntp_auth (boolean)

    YANG Description: Enable or disable NTP authentication -- when enabled, the
system will only use packets containing a trusted
authentication key to synchronize the time.
    """
    return self.__enable_ntp_auth
      
  def _set_enable_ntp_auth(self, v, load=False):
    """
    Setter method for enable_ntp_auth, mapped from YANG variable /access_points/access_point/system/ntp/config/enable_ntp_auth (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_enable_ntp_auth is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_enable_ntp_auth() directly.

    YANG Description: Enable or disable NTP authentication -- when enabled, the
system will only use packets containing a trusted
authentication key to synchronize the time.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enable-ntp-auth", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """enable_ntp_auth must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enable-ntp-auth", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)""",
        })

    self.__enable_ntp_auth = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_enable_ntp_auth(self):
    self.__enable_ntp_auth = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enable-ntp-auth", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)

  enabled = __builtin__.property(_get_enabled, _set_enabled)
  enable_ntp_auth = __builtin__.property(_get_enable_ntp_auth, _set_enable_ntp_auth)


  _pyangbind_elements = OrderedDict([('enabled', enabled), ('enable_ntp_auth', enable_ntp_auth), ])


class yc_state_openconfig_access_points__access_points_access_point_system_ntp_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/ntp/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Operational state data for NTP services.
  """
  __slots__ = ('_path_helper', '_extmethods', '__enabled','__enable_ntp_auth','__auth_mismatch',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    self.__enable_ntp_auth = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enable-ntp-auth", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    self.__auth_mismatch = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="auth-mismatch", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', 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 ['access-points', 'access-point', 'system', 'ntp', 'state']

  def _get_enabled(self):
    """
    Getter method for enabled, mapped from YANG variable /access_points/access_point/system/ntp/state/enabled (boolean)

    YANG Description: Enables and disables the NTP protocol and indicates that the system should
attempt to synchronize the system clock with an NTP server
from the servers defined in the 'ntp/server' list.
    """
    return self.__enabled
      
  def _set_enabled(self, v, load=False):
    """
    Setter method for enabled, mapped from YANG variable /access_points/access_point/system/ntp/state/enabled (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_enabled is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_enabled() directly.

    YANG Description: Enables and disables the NTP protocol and indicates that the system should
attempt to synchronize the system clock with an NTP server
from the servers defined in the 'ntp/server' list.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """enabled must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)""",
        })

    self.__enabled = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_enabled(self):
    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)


  def _get_enable_ntp_auth(self):
    """
    Getter method for enable_ntp_auth, mapped from YANG variable /access_points/access_point/system/ntp/state/enable_ntp_auth (boolean)

    YANG Description: Enable or disable NTP authentication -- when enabled, the
system will only use packets containing a trusted
authentication key to synchronize the time.
    """
    return self.__enable_ntp_auth
      
  def _set_enable_ntp_auth(self, v, load=False):
    """
    Setter method for enable_ntp_auth, mapped from YANG variable /access_points/access_point/system/ntp/state/enable_ntp_auth (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_enable_ntp_auth is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_enable_ntp_auth() directly.

    YANG Description: Enable or disable NTP authentication -- when enabled, the
system will only use packets containing a trusted
authentication key to synchronize the time.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enable-ntp-auth", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """enable_ntp_auth must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enable-ntp-auth", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)""",
        })

    self.__enable_ntp_auth = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_enable_ntp_auth(self):
    self.__enable_ntp_auth = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enable-ntp-auth", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)


  def _get_auth_mismatch(self):
    """
    Getter method for auth_mismatch, mapped from YANG variable /access_points/access_point/system/ntp/state/auth_mismatch (oc-yang:counter64)

    YANG Description: Count of the number of NTP packets received that were not
processed due to authentication mismatch.
    """
    return self.__auth_mismatch
      
  def _set_auth_mismatch(self, v, load=False):
    """
    Setter method for auth_mismatch, mapped from YANG variable /access_points/access_point/system/ntp/state/auth_mismatch (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_auth_mismatch is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_auth_mismatch() directly.

    YANG Description: Count of the number of NTP packets received that were not
processed due to authentication mismatch.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="auth-mismatch", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """auth_mismatch must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="auth-mismatch", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__auth_mismatch = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_auth_mismatch(self):
    self.__auth_mismatch = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="auth-mismatch", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-yang:counter64', is_config=False)

  enabled = __builtin__.property(_get_enabled)
  enable_ntp_auth = __builtin__.property(_get_enable_ntp_auth)
  auth_mismatch = __builtin__.property(_get_auth_mismatch)


  _pyangbind_elements = OrderedDict([('enabled', enabled), ('enable_ntp_auth', enable_ntp_auth), ('auth_mismatch', auth_mismatch), ])


class yc_config_openconfig_access_points__access_points_access_point_system_ntp_ntp_keys_ntp_key_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/ntp/ntp-keys/ntp-key/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Configuration data for NTP auth keys
  """
  __slots__ = ('_path_helper', '_extmethods', '__key_id','__key_type','__key_value',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__key_id = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="key-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=True)
    self.__key_type = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'NTP_AUTH_MD5': {'@module': 'openconfig-system', '@namespace': 'http://openconfig.net/yang/system'}, 'oc-sys:NTP_AUTH_MD5': {'@module': 'openconfig-system', '@namespace': 'http://openconfig.net/yang/system'}},), is_leaf=True, yang_name="key-type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=True)
    self.__key_value = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="key-value", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=True)

    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 ['access-points', 'access-point', 'system', 'ntp', 'ntp-keys', 'ntp-key', 'config']

  def _get_key_id(self):
    """
    Getter method for key_id, mapped from YANG variable /access_points/access_point/system/ntp/ntp_keys/ntp_key/config/key_id (uint16)

    YANG Description: Integer identifier used by the client and server to
designate a secret key.  The client and server must use
the same key id.
    """
    return self.__key_id
      
  def _set_key_id(self, v, load=False):
    """
    Setter method for key_id, mapped from YANG variable /access_points/access_point/system/ntp/ntp_keys/ntp_key/config/key_id (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_key_id is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_key_id() directly.

    YANG Description: Integer identifier used by the client and server to
designate a secret key.  The client and server must use
the same key id.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="key-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """key_id must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="key-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=True)""",
        })

    self.__key_id = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_key_id(self):
    self.__key_id = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="key-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=True)


  def _get_key_type(self):
    """
    Getter method for key_type, mapped from YANG variable /access_points/access_point/system/ntp/ntp_keys/ntp_key/config/key_type (identityref)

    YANG Description: Encryption type used for the NTP authentication key
    """
    return self.__key_type
      
  def _set_key_type(self, v, load=False):
    """
    Setter method for key_type, mapped from YANG variable /access_points/access_point/system/ntp/ntp_keys/ntp_key/config/key_type (identityref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_key_type is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_key_type() directly.

    YANG Description: Encryption type used for the NTP authentication key
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'NTP_AUTH_MD5': {'@module': 'openconfig-system', '@namespace': 'http://openconfig.net/yang/system'}, 'oc-sys:NTP_AUTH_MD5': {'@module': 'openconfig-system', '@namespace': 'http://openconfig.net/yang/system'}},), is_leaf=True, yang_name="key-type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """key_type must be of a type compatible with identityref""",
          'defined-type': "openconfig-access-points:identityref",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'NTP_AUTH_MD5': {'@module': 'openconfig-system', '@namespace': 'http://openconfig.net/yang/system'}, 'oc-sys:NTP_AUTH_MD5': {'@module': 'openconfig-system', '@namespace': 'http://openconfig.net/yang/system'}},), is_leaf=True, yang_name="key-type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=True)""",
        })

    self.__key_type = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_key_type(self):
    self.__key_type = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'NTP_AUTH_MD5': {'@module': 'openconfig-system', '@namespace': 'http://openconfig.net/yang/system'}, 'oc-sys:NTP_AUTH_MD5': {'@module': 'openconfig-system', '@namespace': 'http://openconfig.net/yang/system'}},), is_leaf=True, yang_name="key-type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=True)


  def _get_key_value(self):
    """
    Getter method for key_value, mapped from YANG variable /access_points/access_point/system/ntp/ntp_keys/ntp_key/config/key_value (string)

    YANG Description: NTP authentication key value
    """
    return self.__key_value
      
  def _set_key_value(self, v, load=False):
    """
    Setter method for key_value, mapped from YANG variable /access_points/access_point/system/ntp/ntp_keys/ntp_key/config/key_value (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_key_value is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_key_value() directly.

    YANG Description: NTP authentication key value
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="key-value", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """key_value must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="key-value", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=True)""",
        })

    self.__key_value = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_key_value(self):
    self.__key_value = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="key-value", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=True)

  key_id = __builtin__.property(_get_key_id, _set_key_id)
  key_type = __builtin__.property(_get_key_type, _set_key_type)
  key_value = __builtin__.property(_get_key_value, _set_key_value)


  _pyangbind_elements = OrderedDict([('key_id', key_id), ('key_type', key_type), ('key_value', key_value), ])


class yc_state_openconfig_access_points__access_points_access_point_system_ntp_ntp_keys_ntp_key_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/ntp/ntp-keys/ntp-key/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Operational state data for NTP auth keys
  """
  __slots__ = ('_path_helper', '_extmethods', '__key_id','__key_type','__key_value',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__key_id = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="key-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)
    self.__key_type = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'NTP_AUTH_MD5': {'@module': 'openconfig-system', '@namespace': 'http://openconfig.net/yang/system'}, 'oc-sys:NTP_AUTH_MD5': {'@module': 'openconfig-system', '@namespace': 'http://openconfig.net/yang/system'}},), is_leaf=True, yang_name="key-type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)
    self.__key_value = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="key-value", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', 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 ['access-points', 'access-point', 'system', 'ntp', 'ntp-keys', 'ntp-key', 'state']

  def _get_key_id(self):
    """
    Getter method for key_id, mapped from YANG variable /access_points/access_point/system/ntp/ntp_keys/ntp_key/state/key_id (uint16)

    YANG Description: Integer identifier used by the client and server to
designate a secret key.  The client and server must use
the same key id.
    """
    return self.__key_id
      
  def _set_key_id(self, v, load=False):
    """
    Setter method for key_id, mapped from YANG variable /access_points/access_point/system/ntp/ntp_keys/ntp_key/state/key_id (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_key_id is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_key_id() directly.

    YANG Description: Integer identifier used by the client and server to
designate a secret key.  The client and server must use
the same key id.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="key-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """key_id must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="key-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)""",
        })

    self.__key_id = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_key_id(self):
    self.__key_id = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="key-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint16', is_config=False)


  def _get_key_type(self):
    """
    Getter method for key_type, mapped from YANG variable /access_points/access_point/system/ntp/ntp_keys/ntp_key/state/key_type (identityref)

    YANG Description: Encryption type used for the NTP authentication key
    """
    return self.__key_type
      
  def _set_key_type(self, v, load=False):
    """
    Setter method for key_type, mapped from YANG variable /access_points/access_point/system/ntp/ntp_keys/ntp_key/state/key_type (identityref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_key_type is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_key_type() directly.

    YANG Description: Encryption type used for the NTP authentication key
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'NTP_AUTH_MD5': {'@module': 'openconfig-system', '@namespace': 'http://openconfig.net/yang/system'}, 'oc-sys:NTP_AUTH_MD5': {'@module': 'openconfig-system', '@namespace': 'http://openconfig.net/yang/system'}},), is_leaf=True, yang_name="key-type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """key_type must be of a type compatible with identityref""",
          'defined-type': "openconfig-access-points:identityref",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'NTP_AUTH_MD5': {'@module': 'openconfig-system', '@namespace': 'http://openconfig.net/yang/system'}, 'oc-sys:NTP_AUTH_MD5': {'@module': 'openconfig-system', '@namespace': 'http://openconfig.net/yang/system'}},), is_leaf=True, yang_name="key-type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)""",
        })

    self.__key_type = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_key_type(self):
    self.__key_type = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'NTP_AUTH_MD5': {'@module': 'openconfig-system', '@namespace': 'http://openconfig.net/yang/system'}, 'oc-sys:NTP_AUTH_MD5': {'@module': 'openconfig-system', '@namespace': 'http://openconfig.net/yang/system'}},), is_leaf=True, yang_name="key-type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='identityref', is_config=False)


  def _get_key_value(self):
    """
    Getter method for key_value, mapped from YANG variable /access_points/access_point/system/ntp/ntp_keys/ntp_key/state/key_value (string)

    YANG Description: NTP authentication key value
    """
    return self.__key_value
      
  def _set_key_value(self, v, load=False):
    """
    Setter method for key_value, mapped from YANG variable /access_points/access_point/system/ntp/ntp_keys/ntp_key/state/key_value (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_key_value is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_key_value() directly.

    YANG Description: NTP authentication key value
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="key-value", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """key_value must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="key-value", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)""",
        })

    self.__key_value = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_key_value(self):
    self.__key_value = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="key-value", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)

  key_id = __builtin__.property(_get_key_id)
  key_type = __builtin__.property(_get_key_type)
  key_value = __builtin__.property(_get_key_value)


  _pyangbind_elements = OrderedDict([('key_id', key_id), ('key_type', key_type), ('key_value', key_value), ])


class yc_ntp_key_openconfig_access_points__access_points_access_point_system_ntp_ntp_keys_ntp_key(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/ntp/ntp-keys/ntp-key. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: List of NTP authentication keys
  """
  __slots__ = ('_path_helper', '_extmethods', '__key_id','__config','__state',)

  _yang_name = 'ntp-key'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__key_id = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="key-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_ntp_ntp_keys_ntp_key_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_ntp_ntp_keys_ntp_key_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'system', 'ntp', 'ntp-keys', 'ntp-key']

  def _get_key_id(self):
    """
    Getter method for key_id, mapped from YANG variable /access_points/access_point/system/ntp/ntp_keys/ntp_key/key_id (leafref)

    YANG Description: Reference to auth key-id list key
    """
    return self.__key_id
      
  def _set_key_id(self, v, load=False):
    """
    Setter method for key_id, mapped from YANG variable /access_points/access_point/system/ntp/ntp_keys/ntp_key/key_id (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_key_id is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_key_id() directly.

    YANG Description: Reference to auth key-id list key
    """
    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="key-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """key_id must be of a type compatible with leafref""",
          'defined-type': "leafref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="key-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)""",
        })

    self.__key_id = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_key_id(self):
    self.__key_id = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="key-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)


  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/system/ntp/ntp_keys/ntp_key/config (container)

    YANG Description: Configuration data for NTP auth keys
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/system/ntp/ntp_keys/ntp_key/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Configuration data for NTP auth keys
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_access_points__access_points_access_point_system_ntp_ntp_keys_ntp_key_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_ntp_ntp_keys_ntp_key_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_ntp_ntp_keys_ntp_key_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/system/ntp/ntp_keys/ntp_key/state (container)

    YANG Description: Operational state data for NTP auth keys
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/system/ntp/ntp_keys/ntp_key/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: Operational state data for NTP auth keys
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_system_ntp_ntp_keys_ntp_key_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_ntp_ntp_keys_ntp_key_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_ntp_ntp_keys_ntp_key_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

  key_id = __builtin__.property(_get_key_id, _set_key_id)
  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)


  _pyangbind_elements = OrderedDict([('key_id', key_id), ('config', config), ('state', state), ])


class yc_ntp_keys_openconfig_access_points__access_points_access_point_system_ntp_ntp_keys(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/ntp/ntp-keys. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Enclosing container for list of NTP authentication keys
  """
  __slots__ = ('_path_helper', '_extmethods', '__ntp_key',)

  _yang_name = 'ntp-keys'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__ntp_key = YANGDynClass(base=YANGListType("key_id",yc_ntp_key_openconfig_access_points__access_points_access_point_system_ntp_ntp_keys_ntp_key, yang_name="ntp-key", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='key-id', extensions=None), is_container='list', yang_name="ntp-key", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)

    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 ['access-points', 'access-point', 'system', 'ntp', 'ntp-keys']

  def _get_ntp_key(self):
    """
    Getter method for ntp_key, mapped from YANG variable /access_points/access_point/system/ntp/ntp_keys/ntp_key (list)

    YANG Description: List of NTP authentication keys
    """
    return self.__ntp_key
      
  def _set_ntp_key(self, v, load=False):
    """
    Setter method for ntp_key, mapped from YANG variable /access_points/access_point/system/ntp/ntp_keys/ntp_key (list)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ntp_key is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ntp_key() directly.

    YANG Description: List of NTP authentication keys
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGListType("key_id",yc_ntp_key_openconfig_access_points__access_points_access_point_system_ntp_ntp_keys_ntp_key, yang_name="ntp-key", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='key-id', extensions=None), is_container='list', yang_name="ntp-key", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ntp_key must be of a type compatible with list""",
          'defined-type': "list",
          'generated-type': """YANGDynClass(base=YANGListType("key_id",yc_ntp_key_openconfig_access_points__access_points_access_point_system_ntp_ntp_keys_ntp_key, yang_name="ntp-key", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='key-id', extensions=None), is_container='list', yang_name="ntp-key", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)""",
        })

    self.__ntp_key = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ntp_key(self):
    self.__ntp_key = YANGDynClass(base=YANGListType("key_id",yc_ntp_key_openconfig_access_points__access_points_access_point_system_ntp_ntp_keys_ntp_key, yang_name="ntp-key", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='key-id', extensions=None), is_container='list', yang_name="ntp-key", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)

  ntp_key = __builtin__.property(_get_ntp_key, _set_ntp_key)


  _pyangbind_elements = OrderedDict([('ntp_key', ntp_key), ])


class yc_config_openconfig_access_points__access_points_access_point_system_ntp_servers_server_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/ntp/servers/server/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Configuration data for an NTP server.
  """
  __slots__ = ('_path_helper', '_extmethods', '__address','__port','__version','__association_type','__iburst','__prefer','__network_instance','__source_address',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__address = YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(((([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.)*([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.?)|\\.)', 'length': ['1..253']}),], is_leaf=True, yang_name="address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:host', is_config=True)
    self.__port = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16)(123), is_leaf=True, yang_name="port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:port-number', is_config=True)
    self.__version = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..4']}), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)(4), is_leaf=True, yang_name="version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=True)
    self.__association_type = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'SERVER': {}, 'PEER': {}, 'POOL': {}},), default=six.text_type("SERVER"), is_leaf=True, yang_name="association-type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='enumeration', is_config=True)
    self.__iburst = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="iburst", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)
    self.__prefer = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="prefer", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)
    self.__network_instance = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="network-instance", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-ni:network-instance-ref', is_config=True)
    self.__source_address = YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),], is_leaf=True, yang_name="source-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ip-address', is_config=True)

    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 ['access-points', 'access-point', 'system', 'ntp', 'servers', 'server', 'config']

  def _get_address(self):
    """
    Getter method for address, mapped from YANG variable /access_points/access_point/system/ntp/servers/server/config/address (oc-inet:host)

    YANG Description: The address or hostname of the NTP server.
    """
    return self.__address
      
  def _set_address(self, v, load=False):
    """
    Setter method for address, mapped from YANG variable /access_points/access_point/system/ntp/servers/server/config/address (oc-inet:host)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_address is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_address() directly.

    YANG Description: The address or hostname of the NTP server.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(((([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.)*([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.?)|\\.)', 'length': ['1..253']}),], is_leaf=True, yang_name="address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:host', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """address must be of a type compatible with oc-inet:host""",
          'defined-type': "oc-inet:host",
          'generated-type': """YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(((([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.)*([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.?)|\\.)', 'length': ['1..253']}),], is_leaf=True, yang_name="address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:host', is_config=True)""",
        })

    self.__address = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_address(self):
    self.__address = YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(((([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.)*([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.?)|\\.)', 'length': ['1..253']}),], is_leaf=True, yang_name="address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:host', is_config=True)


  def _get_port(self):
    """
    Getter method for port, mapped from YANG variable /access_points/access_point/system/ntp/servers/server/config/port (oc-inet:port-number)

    YANG Description: The port number of the NTP server.
    """
    return self.__port
      
  def _set_port(self, v, load=False):
    """
    Setter method for port, mapped from YANG variable /access_points/access_point/system/ntp/servers/server/config/port (oc-inet:port-number)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_port is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_port() directly.

    YANG Description: The port number of the NTP server.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16)(123), is_leaf=True, yang_name="port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:port-number', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """port must be of a type compatible with oc-inet:port-number""",
          'defined-type': "oc-inet:port-number",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16)(123), is_leaf=True, yang_name="port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:port-number', is_config=True)""",
        })

    self.__port = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_port(self):
    self.__port = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16)(123), is_leaf=True, yang_name="port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:port-number', is_config=True)


  def _get_version(self):
    """
    Getter method for version, mapped from YANG variable /access_points/access_point/system/ntp/servers/server/config/version (uint8)

    YANG Description: Version number to put in outgoing NTP packets
    """
    return self.__version
      
  def _set_version(self, v, load=False):
    """
    Setter method for version, mapped from YANG variable /access_points/access_point/system/ntp/servers/server/config/version (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_version is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_version() directly.

    YANG Description: Version number to put in outgoing NTP packets
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..4']}), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)(4), is_leaf=True, yang_name="version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """version must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..4']}), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)(4), is_leaf=True, yang_name="version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=True)""",
        })

    self.__version = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_version(self):
    self.__version = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..4']}), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)(4), is_leaf=True, yang_name="version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=True)


  def _get_association_type(self):
    """
    Getter method for association_type, mapped from YANG variable /access_points/access_point/system/ntp/servers/server/config/association_type (enumeration)

    YANG Description: The desired association type for this NTP server.
    """
    return self.__association_type
      
  def _set_association_type(self, v, load=False):
    """
    Setter method for association_type, mapped from YANG variable /access_points/access_point/system/ntp/servers/server/config/association_type (enumeration)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_association_type is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_association_type() directly.

    YANG Description: The desired association type for this NTP server.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'SERVER': {}, 'PEER': {}, 'POOL': {}},), default=six.text_type("SERVER"), is_leaf=True, yang_name="association-type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='enumeration', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """association_type must be of a type compatible with enumeration""",
          'defined-type': "openconfig-access-points:enumeration",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'SERVER': {}, 'PEER': {}, 'POOL': {}},), default=six.text_type("SERVER"), is_leaf=True, yang_name="association-type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='enumeration', is_config=True)""",
        })

    self.__association_type = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_association_type(self):
    self.__association_type = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'SERVER': {}, 'PEER': {}, 'POOL': {}},), default=six.text_type("SERVER"), is_leaf=True, yang_name="association-type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='enumeration', is_config=True)


  def _get_iburst(self):
    """
    Getter method for iburst, mapped from YANG variable /access_points/access_point/system/ntp/servers/server/config/iburst (boolean)

    YANG Description: Indicates whether this server should enable burst
synchronization or not.
    """
    return self.__iburst
      
  def _set_iburst(self, v, load=False):
    """
    Setter method for iburst, mapped from YANG variable /access_points/access_point/system/ntp/servers/server/config/iburst (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_iburst is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_iburst() directly.

    YANG Description: Indicates whether this server should enable burst
synchronization or not.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="iburst", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """iburst must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="iburst", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)""",
        })

    self.__iburst = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_iburst(self):
    self.__iburst = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="iburst", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)


  def _get_prefer(self):
    """
    Getter method for prefer, mapped from YANG variable /access_points/access_point/system/ntp/servers/server/config/prefer (boolean)

    YANG Description: Indicates whether this server should be preferred
or not.
    """
    return self.__prefer
      
  def _set_prefer(self, v, load=False):
    """
    Setter method for prefer, mapped from YANG variable /access_points/access_point/system/ntp/servers/server/config/prefer (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_prefer is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_prefer() directly.

    YANG Description: Indicates whether this server should be preferred
or not.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="prefer", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """prefer must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="prefer", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)""",
        })

    self.__prefer = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_prefer(self):
    self.__prefer = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="prefer", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=True)


  def _get_network_instance(self):
    """
    Getter method for network_instance, mapped from YANG variable /access_points/access_point/system/ntp/servers/server/config/network_instance (oc-ni:network-instance-ref)

    YANG Description: The network instance used to find this server.
    """
    return self.__network_instance
      
  def _set_network_instance(self, v, load=False):
    """
    Setter method for network_instance, mapped from YANG variable /access_points/access_point/system/ntp/servers/server/config/network_instance (oc-ni:network-instance-ref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_network_instance is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_network_instance() directly.

    YANG Description: The network instance used to find this server.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="network-instance", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-ni:network-instance-ref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """network_instance must be of a type compatible with oc-ni:network-instance-ref""",
          'defined-type': "oc-ni:network-instance-ref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="network-instance", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-ni:network-instance-ref', is_config=True)""",
        })

    self.__network_instance = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_network_instance(self):
    self.__network_instance = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="network-instance", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-ni:network-instance-ref', is_config=True)


  def _get_source_address(self):
    """
    Getter method for source_address, mapped from YANG variable /access_points/access_point/system/ntp/servers/server/config/source_address (oc-inet:ip-address)

    YANG Description: Source address to use on outgoing NTP packets
    """
    return self.__source_address
      
  def _set_source_address(self, v, load=False):
    """
    Setter method for source_address, mapped from YANG variable /access_points/access_point/system/ntp/servers/server/config/source_address (oc-inet:ip-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_source_address is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_source_address() directly.

    YANG Description: Source address to use on outgoing NTP packets
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),], is_leaf=True, yang_name="source-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ip-address', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """source_address must be of a type compatible with oc-inet:ip-address""",
          'defined-type': "oc-inet:ip-address",
          'generated-type': """YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),], is_leaf=True, yang_name="source-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ip-address', is_config=True)""",
        })

    self.__source_address = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_source_address(self):
    self.__source_address = YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),], is_leaf=True, yang_name="source-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ip-address', is_config=True)

  address = __builtin__.property(_get_address, _set_address)
  port = __builtin__.property(_get_port, _set_port)
  version = __builtin__.property(_get_version, _set_version)
  association_type = __builtin__.property(_get_association_type, _set_association_type)
  iburst = __builtin__.property(_get_iburst, _set_iburst)
  prefer = __builtin__.property(_get_prefer, _set_prefer)
  network_instance = __builtin__.property(_get_network_instance, _set_network_instance)
  source_address = __builtin__.property(_get_source_address, _set_source_address)


  _pyangbind_elements = OrderedDict([('address', address), ('port', port), ('version', version), ('association_type', association_type), ('iburst', iburst), ('prefer', prefer), ('network_instance', network_instance), ('source_address', source_address), ])


class yc_state_openconfig_access_points__access_points_access_point_system_ntp_servers_server_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/ntp/servers/server/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Operational state data for an NTP server.
  """
  __slots__ = ('_path_helper', '_extmethods', '__address','__port','__version','__association_type','__iburst','__prefer','__network_instance','__source_address','__stratum','__root_delay','__root_dispersion','__offset','__poll_interval',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__address = YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(((([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.)*([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.?)|\\.)', 'length': ['1..253']}),], is_leaf=True, yang_name="address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:host', is_config=False)
    self.__port = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16)(123), is_leaf=True, yang_name="port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:port-number', is_config=False)
    self.__version = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..4']}), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)(4), is_leaf=True, yang_name="version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)
    self.__association_type = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'SERVER': {}, 'PEER': {}, 'POOL': {}},), default=six.text_type("SERVER"), is_leaf=True, yang_name="association-type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='enumeration', is_config=False)
    self.__iburst = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="iburst", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    self.__prefer = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="prefer", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    self.__network_instance = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="network-instance", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-ni:network-instance-ref', is_config=False)
    self.__source_address = YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),], is_leaf=True, yang_name="source-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ip-address', is_config=False)
    self.__stratum = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="stratum", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)
    self.__root_delay = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="root-delay", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint32', is_config=False)
    self.__root_dispersion = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="root-dispersion", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint64', is_config=False)
    self.__offset = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="offset", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint64', is_config=False)
    self.__poll_interval = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="poll-interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint32', 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 ['access-points', 'access-point', 'system', 'ntp', 'servers', 'server', 'state']

  def _get_address(self):
    """
    Getter method for address, mapped from YANG variable /access_points/access_point/system/ntp/servers/server/state/address (oc-inet:host)

    YANG Description: The address or hostname of the NTP server.
    """
    return self.__address
      
  def _set_address(self, v, load=False):
    """
    Setter method for address, mapped from YANG variable /access_points/access_point/system/ntp/servers/server/state/address (oc-inet:host)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_address is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_address() directly.

    YANG Description: The address or hostname of the NTP server.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(((([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.)*([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.?)|\\.)', 'length': ['1..253']}),], is_leaf=True, yang_name="address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:host', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """address must be of a type compatible with oc-inet:host""",
          'defined-type': "oc-inet:host",
          'generated-type': """YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(((([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.)*([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.?)|\\.)', 'length': ['1..253']}),], is_leaf=True, yang_name="address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:host', is_config=False)""",
        })

    self.__address = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_address(self):
    self.__address = YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(((([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.)*([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.?)|\\.)', 'length': ['1..253']}),], is_leaf=True, yang_name="address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:host', is_config=False)


  def _get_port(self):
    """
    Getter method for port, mapped from YANG variable /access_points/access_point/system/ntp/servers/server/state/port (oc-inet:port-number)

    YANG Description: The port number of the NTP server.
    """
    return self.__port
      
  def _set_port(self, v, load=False):
    """
    Setter method for port, mapped from YANG variable /access_points/access_point/system/ntp/servers/server/state/port (oc-inet:port-number)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_port is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_port() directly.

    YANG Description: The port number of the NTP server.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16)(123), is_leaf=True, yang_name="port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:port-number', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """port must be of a type compatible with oc-inet:port-number""",
          'defined-type': "oc-inet:port-number",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16)(123), is_leaf=True, yang_name="port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:port-number', is_config=False)""",
        })

    self.__port = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_port(self):
    self.__port = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16)(123), is_leaf=True, yang_name="port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:port-number', is_config=False)


  def _get_version(self):
    """
    Getter method for version, mapped from YANG variable /access_points/access_point/system/ntp/servers/server/state/version (uint8)

    YANG Description: Version number to put in outgoing NTP packets
    """
    return self.__version
      
  def _set_version(self, v, load=False):
    """
    Setter method for version, mapped from YANG variable /access_points/access_point/system/ntp/servers/server/state/version (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_version is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_version() directly.

    YANG Description: Version number to put in outgoing NTP packets
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..4']}), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)(4), is_leaf=True, yang_name="version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """version must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..4']}), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)(4), is_leaf=True, yang_name="version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)""",
        })

    self.__version = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_version(self):
    self.__version = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..4']}), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)(4), is_leaf=True, yang_name="version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)


  def _get_association_type(self):
    """
    Getter method for association_type, mapped from YANG variable /access_points/access_point/system/ntp/servers/server/state/association_type (enumeration)

    YANG Description: The desired association type for this NTP server.
    """
    return self.__association_type
      
  def _set_association_type(self, v, load=False):
    """
    Setter method for association_type, mapped from YANG variable /access_points/access_point/system/ntp/servers/server/state/association_type (enumeration)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_association_type is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_association_type() directly.

    YANG Description: The desired association type for this NTP server.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'SERVER': {}, 'PEER': {}, 'POOL': {}},), default=six.text_type("SERVER"), is_leaf=True, yang_name="association-type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='enumeration', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """association_type must be of a type compatible with enumeration""",
          'defined-type': "openconfig-access-points:enumeration",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'SERVER': {}, 'PEER': {}, 'POOL': {}},), default=six.text_type("SERVER"), is_leaf=True, yang_name="association-type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='enumeration', is_config=False)""",
        })

    self.__association_type = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_association_type(self):
    self.__association_type = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'SERVER': {}, 'PEER': {}, 'POOL': {}},), default=six.text_type("SERVER"), is_leaf=True, yang_name="association-type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='enumeration', is_config=False)


  def _get_iburst(self):
    """
    Getter method for iburst, mapped from YANG variable /access_points/access_point/system/ntp/servers/server/state/iburst (boolean)

    YANG Description: Indicates whether this server should enable burst
synchronization or not.
    """
    return self.__iburst
      
  def _set_iburst(self, v, load=False):
    """
    Setter method for iburst, mapped from YANG variable /access_points/access_point/system/ntp/servers/server/state/iburst (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_iburst is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_iburst() directly.

    YANG Description: Indicates whether this server should enable burst
synchronization or not.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="iburst", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """iburst must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="iburst", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)""",
        })

    self.__iburst = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_iburst(self):
    self.__iburst = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="iburst", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)


  def _get_prefer(self):
    """
    Getter method for prefer, mapped from YANG variable /access_points/access_point/system/ntp/servers/server/state/prefer (boolean)

    YANG Description: Indicates whether this server should be preferred
or not.
    """
    return self.__prefer
      
  def _set_prefer(self, v, load=False):
    """
    Setter method for prefer, mapped from YANG variable /access_points/access_point/system/ntp/servers/server/state/prefer (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_prefer is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_prefer() directly.

    YANG Description: Indicates whether this server should be preferred
or not.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="prefer", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """prefer must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="prefer", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)""",
        })

    self.__prefer = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_prefer(self):
    self.__prefer = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="prefer", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)


  def _get_network_instance(self):
    """
    Getter method for network_instance, mapped from YANG variable /access_points/access_point/system/ntp/servers/server/state/network_instance (oc-ni:network-instance-ref)

    YANG Description: The network instance used to find this server.
    """
    return self.__network_instance
      
  def _set_network_instance(self, v, load=False):
    """
    Setter method for network_instance, mapped from YANG variable /access_points/access_point/system/ntp/servers/server/state/network_instance (oc-ni:network-instance-ref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_network_instance is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_network_instance() directly.

    YANG Description: The network instance used to find this server.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="network-instance", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-ni:network-instance-ref', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """network_instance must be of a type compatible with oc-ni:network-instance-ref""",
          'defined-type': "oc-ni:network-instance-ref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="network-instance", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-ni:network-instance-ref', is_config=False)""",
        })

    self.__network_instance = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_network_instance(self):
    self.__network_instance = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="network-instance", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-ni:network-instance-ref', is_config=False)


  def _get_source_address(self):
    """
    Getter method for source_address, mapped from YANG variable /access_points/access_point/system/ntp/servers/server/state/source_address (oc-inet:ip-address)

    YANG Description: Source address to use on outgoing NTP packets
    """
    return self.__source_address
      
  def _set_source_address(self, v, load=False):
    """
    Setter method for source_address, mapped from YANG variable /access_points/access_point/system/ntp/servers/server/state/source_address (oc-inet:ip-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_source_address is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_source_address() directly.

    YANG Description: Source address to use on outgoing NTP packets
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),], is_leaf=True, yang_name="source-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ip-address', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """source_address must be of a type compatible with oc-inet:ip-address""",
          'defined-type': "oc-inet:ip-address",
          'generated-type': """YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),], is_leaf=True, yang_name="source-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ip-address', is_config=False)""",
        })

    self.__source_address = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_source_address(self):
    self.__source_address = YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),], is_leaf=True, yang_name="source-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ip-address', is_config=False)


  def _get_stratum(self):
    """
    Getter method for stratum, mapped from YANG variable /access_points/access_point/system/ntp/servers/server/state/stratum (uint8)

    YANG Description: Indicates the level of the server in the NTP hierarchy. As
stratum number increases, the accuracy is degraded.  Primary
servers are stratum while a maximum value of 16 indicates
unsynchronized.  The values have the following specific
semantics:

| 0      | unspecified or invalid
| 1      | primary server (e.g., equipped with a GPS receiver)
| 2-15   | secondary server (via NTP)
| 16     | unsynchronized
| 17-255 | reserved
    """
    return self.__stratum
      
  def _set_stratum(self, v, load=False):
    """
    Setter method for stratum, mapped from YANG variable /access_points/access_point/system/ntp/servers/server/state/stratum (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_stratum is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_stratum() directly.

    YANG Description: Indicates the level of the server in the NTP hierarchy. As
stratum number increases, the accuracy is degraded.  Primary
servers are stratum while a maximum value of 16 indicates
unsynchronized.  The values have the following specific
semantics:

| 0      | unspecified or invalid
| 1      | primary server (e.g., equipped with a GPS receiver)
| 2-15   | secondary server (via NTP)
| 16     | unsynchronized
| 17-255 | reserved
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="stratum", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """stratum must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="stratum", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)""",
        })

    self.__stratum = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_stratum(self):
    self.__stratum = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="stratum", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint8', is_config=False)


  def _get_root_delay(self):
    """
    Getter method for root_delay, mapped from YANG variable /access_points/access_point/system/ntp/servers/server/state/root_delay (uint32)

    YANG Description: The round-trip delay to the server, in milliseconds.
    """
    return self.__root_delay
      
  def _set_root_delay(self, v, load=False):
    """
    Setter method for root_delay, mapped from YANG variable /access_points/access_point/system/ntp/servers/server/state/root_delay (uint32)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_root_delay is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_root_delay() directly.

    YANG Description: The round-trip delay to the server, in milliseconds.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="root-delay", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint32', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """root_delay must be of a type compatible with uint32""",
          'defined-type': "uint32",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="root-delay", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint32', is_config=False)""",
        })

    self.__root_delay = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_root_delay(self):
    self.__root_delay = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="root-delay", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint32', is_config=False)


  def _get_root_dispersion(self):
    """
    Getter method for root_dispersion, mapped from YANG variable /access_points/access_point/system/ntp/servers/server/state/root_dispersion (uint64)

    YANG Description: Dispersion (epsilon) represents the maximum error inherent
in the measurement
    """
    return self.__root_dispersion
      
  def _set_root_dispersion(self, v, load=False):
    """
    Setter method for root_dispersion, mapped from YANG variable /access_points/access_point/system/ntp/servers/server/state/root_dispersion (uint64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_root_dispersion is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_root_dispersion() directly.

    YANG Description: Dispersion (epsilon) represents the maximum error inherent
in the measurement
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="root-dispersion", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """root_dispersion must be of a type compatible with uint64""",
          'defined-type': "uint64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="root-dispersion", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint64', is_config=False)""",
        })

    self.__root_dispersion = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_root_dispersion(self):
    self.__root_dispersion = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="root-dispersion", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint64', is_config=False)


  def _get_offset(self):
    """
    Getter method for offset, mapped from YANG variable /access_points/access_point/system/ntp/servers/server/state/offset (uint64)

    YANG Description: Estimate of the current time offset from the peer.  This is
the time difference between the local and reference clock.
    """
    return self.__offset
      
  def _set_offset(self, v, load=False):
    """
    Setter method for offset, mapped from YANG variable /access_points/access_point/system/ntp/servers/server/state/offset (uint64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_offset is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_offset() directly.

    YANG Description: Estimate of the current time offset from the peer.  This is
the time difference between the local and reference clock.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="offset", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """offset must be of a type compatible with uint64""",
          'defined-type': "uint64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="offset", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint64', is_config=False)""",
        })

    self.__offset = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_offset(self):
    self.__offset = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="offset", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint64', is_config=False)


  def _get_poll_interval(self):
    """
    Getter method for poll_interval, mapped from YANG variable /access_points/access_point/system/ntp/servers/server/state/poll_interval (uint32)

    YANG Description: Polling interval of the peer
    """
    return self.__poll_interval
      
  def _set_poll_interval(self, v, load=False):
    """
    Setter method for poll_interval, mapped from YANG variable /access_points/access_point/system/ntp/servers/server/state/poll_interval (uint32)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_poll_interval is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_poll_interval() directly.

    YANG Description: Polling interval of the peer
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="poll-interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint32', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """poll_interval must be of a type compatible with uint32""",
          'defined-type': "uint32",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="poll-interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint32', is_config=False)""",
        })

    self.__poll_interval = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_poll_interval(self):
    self.__poll_interval = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="poll-interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='uint32', is_config=False)

  address = __builtin__.property(_get_address)
  port = __builtin__.property(_get_port)
  version = __builtin__.property(_get_version)
  association_type = __builtin__.property(_get_association_type)
  iburst = __builtin__.property(_get_iburst)
  prefer = __builtin__.property(_get_prefer)
  network_instance = __builtin__.property(_get_network_instance)
  source_address = __builtin__.property(_get_source_address)
  stratum = __builtin__.property(_get_stratum)
  root_delay = __builtin__.property(_get_root_delay)
  root_dispersion = __builtin__.property(_get_root_dispersion)
  offset = __builtin__.property(_get_offset)
  poll_interval = __builtin__.property(_get_poll_interval)


  _pyangbind_elements = OrderedDict([('address', address), ('port', port), ('version', version), ('association_type', association_type), ('iburst', iburst), ('prefer', prefer), ('network_instance', network_instance), ('source_address', source_address), ('stratum', stratum), ('root_delay', root_delay), ('root_dispersion', root_dispersion), ('offset', offset), ('poll_interval', poll_interval), ])


class yc_server_openconfig_access_points__access_points_access_point_system_ntp_servers_server(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/ntp/servers/server. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: List of NTP servers to use for system clock
synchronization.  If '/system/ntp/enabled'
is 'true', then the system will attempt to
contact and utilize the specified NTP servers.
  """
  __slots__ = ('_path_helper', '_extmethods', '__address','__config','__state',)

  _yang_name = 'server'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__address = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_ntp_servers_server_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_ntp_servers_server_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'system', 'ntp', 'servers', 'server']

  def _get_address(self):
    """
    Getter method for address, mapped from YANG variable /access_points/access_point/system/ntp/servers/server/address (leafref)

    YANG Description: References the configured address or hostname of the
NTP server.
    """
    return self.__address
      
  def _set_address(self, v, load=False):
    """
    Setter method for address, mapped from YANG variable /access_points/access_point/system/ntp/servers/server/address (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_address is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_address() directly.

    YANG Description: References the configured address or hostname of the
NTP server.
    """
    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="address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """address must be of a type compatible with leafref""",
          'defined-type': "leafref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)""",
        })

    self.__address = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_address(self):
    self.__address = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)


  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/system/ntp/servers/server/config (container)

    YANG Description: Configuration data for an NTP server.
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/system/ntp/servers/server/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Configuration data for an NTP server.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_access_points__access_points_access_point_system_ntp_servers_server_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_ntp_servers_server_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_ntp_servers_server_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/system/ntp/servers/server/state (container)

    YANG Description: Operational state data for an NTP server.
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/system/ntp/servers/server/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: Operational state data for an NTP server.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_system_ntp_servers_server_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_ntp_servers_server_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_ntp_servers_server_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

  address = __builtin__.property(_get_address, _set_address)
  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)


  _pyangbind_elements = OrderedDict([('address', address), ('config', config), ('state', state), ])


class yc_servers_openconfig_access_points__access_points_access_point_system_ntp_servers(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/ntp/servers. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Enclosing container for the list of NTP servers
  """
  __slots__ = ('_path_helper', '_extmethods', '__server',)

  _yang_name = 'servers'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__server = YANGDynClass(base=YANGListType("address",yc_server_openconfig_access_points__access_points_access_point_system_ntp_servers_server, yang_name="server", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='address', extensions=None), is_container='list', yang_name="server", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)

    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 ['access-points', 'access-point', 'system', 'ntp', 'servers']

  def _get_server(self):
    """
    Getter method for server, mapped from YANG variable /access_points/access_point/system/ntp/servers/server (list)

    YANG Description: List of NTP servers to use for system clock
synchronization.  If '/system/ntp/enabled'
is 'true', then the system will attempt to
contact and utilize the specified NTP servers.
    """
    return self.__server
      
  def _set_server(self, v, load=False):
    """
    Setter method for server, mapped from YANG variable /access_points/access_point/system/ntp/servers/server (list)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_server is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_server() directly.

    YANG Description: List of NTP servers to use for system clock
synchronization.  If '/system/ntp/enabled'
is 'true', then the system will attempt to
contact and utilize the specified NTP servers.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGListType("address",yc_server_openconfig_access_points__access_points_access_point_system_ntp_servers_server, yang_name="server", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='address', extensions=None), is_container='list', yang_name="server", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """server must be of a type compatible with list""",
          'defined-type': "list",
          'generated-type': """YANGDynClass(base=YANGListType("address",yc_server_openconfig_access_points__access_points_access_point_system_ntp_servers_server, yang_name="server", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='address', extensions=None), is_container='list', yang_name="server", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)""",
        })

    self.__server = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_server(self):
    self.__server = YANGDynClass(base=YANGListType("address",yc_server_openconfig_access_points__access_points_access_point_system_ntp_servers_server, yang_name="server", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='address', extensions=None), is_container='list', yang_name="server", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)

  server = __builtin__.property(_get_server, _set_server)


  _pyangbind_elements = OrderedDict([('server', server), ])


class yc_ntp_openconfig_access_points__access_points_access_point_system_ntp(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system/ntp. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Top-level container for NTP configuration and state
  """
  __slots__ = ('_path_helper', '_extmethods', '__config','__state','__ntp_keys','__servers',)

  _yang_name = 'ntp'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_ntp_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_ntp_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__ntp_keys = YANGDynClass(base=yc_ntp_keys_openconfig_access_points__access_points_access_point_system_ntp_ntp_keys, is_container='container', yang_name="ntp-keys", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__servers = YANGDynClass(base=yc_servers_openconfig_access_points__access_points_access_point_system_ntp_servers, is_container='container', yang_name="servers", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'system', 'ntp']

  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/system/ntp/config (container)

    YANG Description: Configuration data for NTP client.
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/system/ntp/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Configuration data for NTP client.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_access_points__access_points_access_point_system_ntp_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_ntp_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_ntp_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/system/ntp/state (container)

    YANG Description: Operational state data for NTP services.
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/system/ntp/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: Operational state data for NTP services.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_system_ntp_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_ntp_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_ntp_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_ntp_keys(self):
    """
    Getter method for ntp_keys, mapped from YANG variable /access_points/access_point/system/ntp/ntp_keys (container)

    YANG Description: Enclosing container for list of NTP authentication keys
    """
    return self.__ntp_keys
      
  def _set_ntp_keys(self, v, load=False):
    """
    Setter method for ntp_keys, mapped from YANG variable /access_points/access_point/system/ntp/ntp_keys (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ntp_keys is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ntp_keys() directly.

    YANG Description: Enclosing container for list of NTP authentication keys
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_ntp_keys_openconfig_access_points__access_points_access_point_system_ntp_ntp_keys, is_container='container', yang_name="ntp-keys", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ntp_keys must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_ntp_keys_openconfig_access_points__access_points_access_point_system_ntp_ntp_keys, is_container='container', yang_name="ntp-keys", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__ntp_keys = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ntp_keys(self):
    self.__ntp_keys = YANGDynClass(base=yc_ntp_keys_openconfig_access_points__access_points_access_point_system_ntp_ntp_keys, is_container='container', yang_name="ntp-keys", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_servers(self):
    """
    Getter method for servers, mapped from YANG variable /access_points/access_point/system/ntp/servers (container)

    YANG Description: Enclosing container for the list of NTP servers
    """
    return self.__servers
      
  def _set_servers(self, v, load=False):
    """
    Setter method for servers, mapped from YANG variable /access_points/access_point/system/ntp/servers (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_servers is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_servers() directly.

    YANG Description: Enclosing container for the list of NTP servers
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_servers_openconfig_access_points__access_points_access_point_system_ntp_servers, is_container='container', yang_name="servers", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """servers must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_servers_openconfig_access_points__access_points_access_point_system_ntp_servers, is_container='container', yang_name="servers", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__servers = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_servers(self):
    self.__servers = YANGDynClass(base=yc_servers_openconfig_access_points__access_points_access_point_system_ntp_servers, is_container='container', yang_name="servers", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)
  ntp_keys = __builtin__.property(_get_ntp_keys, _set_ntp_keys)
  servers = __builtin__.property(_get_servers, _set_servers)


  _pyangbind_elements = OrderedDict([('config', config), ('state', state), ('ntp_keys', ntp_keys), ('servers', servers), ])


class yc_system_openconfig_access_points__access_points_access_point_system(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/system. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Enclosing container for system-related configuration and
operational state data
  """
  __slots__ = ('_path_helper', '_extmethods', '__config','__state','__mount_points','__aaa','__alarms','__logging','__processes','__messages','__license','__ssh_server','__telnet_server','__clock','__cpus','__dns','__mac_address','__memory','__ntp',)

  _yang_name = 'system'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__mount_points = YANGDynClass(base=yc_mount_points_openconfig_access_points__access_points_access_point_system_mount_points, is_container='container', yang_name="mount-points", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__aaa = YANGDynClass(base=yc_aaa_openconfig_access_points__access_points_access_point_system_aaa, is_container='container', yang_name="aaa", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__alarms = YANGDynClass(base=yc_alarms_openconfig_access_points__access_points_access_point_system_alarms, is_container='container', yang_name="alarms", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__logging = YANGDynClass(base=yc_logging_openconfig_access_points__access_points_access_point_system_logging, is_container='container', yang_name="logging", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__processes = YANGDynClass(base=yc_processes_openconfig_access_points__access_points_access_point_system_processes, is_container='container', yang_name="processes", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__messages = YANGDynClass(base=yc_messages_openconfig_access_points__access_points_access_point_system_messages, is_container='container', yang_name="messages", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__license = YANGDynClass(base=yc_license_openconfig_access_points__access_points_access_point_system_license, is_container='container', yang_name="license", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__ssh_server = YANGDynClass(base=yc_ssh_server_openconfig_access_points__access_points_access_point_system_ssh_server, is_container='container', yang_name="ssh-server", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__telnet_server = YANGDynClass(base=yc_telnet_server_openconfig_access_points__access_points_access_point_system_telnet_server, is_container='container', yang_name="telnet-server", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__clock = YANGDynClass(base=yc_clock_openconfig_access_points__access_points_access_point_system_clock, is_container='container', yang_name="clock", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__cpus = YANGDynClass(base=yc_cpus_openconfig_access_points__access_points_access_point_system_cpus, is_container='container', yang_name="cpus", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__dns = YANGDynClass(base=yc_dns_openconfig_access_points__access_points_access_point_system_dns, is_container='container', yang_name="dns", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__mac_address = YANGDynClass(base=yc_mac_address_openconfig_access_points__access_points_access_point_system_mac_address, is_container='container', yang_name="mac-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__memory = YANGDynClass(base=yc_memory_openconfig_access_points__access_points_access_point_system_memory, is_container='container', yang_name="memory", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__ntp = YANGDynClass(base=yc_ntp_openconfig_access_points__access_points_access_point_system_ntp, is_container='container', yang_name="ntp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'system']

  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/system/config (container)

    YANG Description: Global configuration data for the system
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/system/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Global configuration data for the system
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_access_points__access_points_access_point_system_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_system_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/system/state (container)

    YANG Description: Global operational state data for the system
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/system/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: Global operational state data for the system
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_system_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_system_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_mount_points(self):
    """
    Getter method for mount_points, mapped from YANG variable /access_points/access_point/system/mount_points (container)

    YANG Description: When a system has a set of filesystems that are attached to a
directory (i.e., mounted on the system) they are expected to be
present in this list. If the system has the concept of mounting
physical or virtual resources to a mount point within the root
filesystem (/) they should also be included in this list.
    """
    return self.__mount_points
      
  def _set_mount_points(self, v, load=False):
    """
    Setter method for mount_points, mapped from YANG variable /access_points/access_point/system/mount_points (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mount_points is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mount_points() directly.

    YANG Description: When a system has a set of filesystems that are attached to a
directory (i.e., mounted on the system) they are expected to be
present in this list. If the system has the concept of mounting
physical or virtual resources to a mount point within the root
filesystem (/) they should also be included in this list.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_mount_points_openconfig_access_points__access_points_access_point_system_mount_points, is_container='container', yang_name="mount-points", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mount_points must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_mount_points_openconfig_access_points__access_points_access_point_system_mount_points, is_container='container', yang_name="mount-points", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__mount_points = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mount_points(self):
    self.__mount_points = YANGDynClass(base=yc_mount_points_openconfig_access_points__access_points_access_point_system_mount_points, is_container='container', yang_name="mount-points", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_aaa(self):
    """
    Getter method for aaa, mapped from YANG variable /access_points/access_point/system/aaa (container)

    YANG Description: Top-level container for AAA services
    """
    return self.__aaa
      
  def _set_aaa(self, v, load=False):
    """
    Setter method for aaa, mapped from YANG variable /access_points/access_point/system/aaa (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_aaa is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_aaa() directly.

    YANG Description: Top-level container for AAA services
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_aaa_openconfig_access_points__access_points_access_point_system_aaa, is_container='container', yang_name="aaa", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """aaa must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_aaa_openconfig_access_points__access_points_access_point_system_aaa, is_container='container', yang_name="aaa", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__aaa = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_aaa(self):
    self.__aaa = YANGDynClass(base=yc_aaa_openconfig_access_points__access_points_access_point_system_aaa, is_container='container', yang_name="aaa", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_alarms(self):
    """
    Getter method for alarms, mapped from YANG variable /access_points/access_point/system/alarms (container)

    YANG Description: Top-level container for device alarms
    """
    return self.__alarms
      
  def _set_alarms(self, v, load=False):
    """
    Setter method for alarms, mapped from YANG variable /access_points/access_point/system/alarms (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_alarms is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_alarms() directly.

    YANG Description: Top-level container for device alarms
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_alarms_openconfig_access_points__access_points_access_point_system_alarms, is_container='container', yang_name="alarms", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """alarms must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_alarms_openconfig_access_points__access_points_access_point_system_alarms, is_container='container', yang_name="alarms", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__alarms = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_alarms(self):
    self.__alarms = YANGDynClass(base=yc_alarms_openconfig_access_points__access_points_access_point_system_alarms, is_container='container', yang_name="alarms", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_logging(self):
    """
    Getter method for logging, mapped from YANG variable /access_points/access_point/system/logging (container)

    YANG Description: Top-level container for data related to logging / syslog
    """
    return self.__logging
      
  def _set_logging(self, v, load=False):
    """
    Setter method for logging, mapped from YANG variable /access_points/access_point/system/logging (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_logging is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_logging() directly.

    YANG Description: Top-level container for data related to logging / syslog
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_logging_openconfig_access_points__access_points_access_point_system_logging, is_container='container', yang_name="logging", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """logging must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_logging_openconfig_access_points__access_points_access_point_system_logging, is_container='container', yang_name="logging", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__logging = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_logging(self):
    self.__logging = YANGDynClass(base=yc_logging_openconfig_access_points__access_points_access_point_system_logging, is_container='container', yang_name="logging", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_processes(self):
    """
    Getter method for processes, mapped from YANG variable /access_points/access_point/system/processes (container)

    YANG Description: Parameters related to all monitored processes
    """
    return self.__processes
      
  def _set_processes(self, v, load=False):
    """
    Setter method for processes, mapped from YANG variable /access_points/access_point/system/processes (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_processes is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_processes() directly.

    YANG Description: Parameters related to all monitored processes
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_processes_openconfig_access_points__access_points_access_point_system_processes, is_container='container', yang_name="processes", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """processes must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_processes_openconfig_access_points__access_points_access_point_system_processes, is_container='container', yang_name="processes", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__processes = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_processes(self):
    self.__processes = YANGDynClass(base=yc_processes_openconfig_access_points__access_points_access_point_system_processes, is_container='container', yang_name="processes", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_messages(self):
    """
    Getter method for messages, mapped from YANG variable /access_points/access_point/system/messages (container)

    YANG Description: Top-level container for Syslog messages.
    """
    return self.__messages
      
  def _set_messages(self, v, load=False):
    """
    Setter method for messages, mapped from YANG variable /access_points/access_point/system/messages (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_messages is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_messages() directly.

    YANG Description: Top-level container for Syslog messages.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_messages_openconfig_access_points__access_points_access_point_system_messages, is_container='container', yang_name="messages", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """messages must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_messages_openconfig_access_points__access_points_access_point_system_messages, is_container='container', yang_name="messages", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__messages = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_messages(self):
    self.__messages = YANGDynClass(base=yc_messages_openconfig_access_points__access_points_access_point_system_messages, is_container='container', yang_name="messages", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_license(self):
    """
    Getter method for license, mapped from YANG variable /access_points/access_point/system/license (container)

    YANG Description: Container for license model
    """
    return self.__license
      
  def _set_license(self, v, load=False):
    """
    Setter method for license, mapped from YANG variable /access_points/access_point/system/license (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_license is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_license() directly.

    YANG Description: Container for license model
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_license_openconfig_access_points__access_points_access_point_system_license, is_container='container', yang_name="license", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """license must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_license_openconfig_access_points__access_points_access_point_system_license, is_container='container', yang_name="license", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__license = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_license(self):
    self.__license = YANGDynClass(base=yc_license_openconfig_access_points__access_points_access_point_system_license, is_container='container', yang_name="license", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_ssh_server(self):
    """
    Getter method for ssh_server, mapped from YANG variable /access_points/access_point/system/ssh_server (container)

    YANG Description: Top-level container for ssh server
    """
    return self.__ssh_server
      
  def _set_ssh_server(self, v, load=False):
    """
    Setter method for ssh_server, mapped from YANG variable /access_points/access_point/system/ssh_server (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ssh_server is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ssh_server() directly.

    YANG Description: Top-level container for ssh server
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_ssh_server_openconfig_access_points__access_points_access_point_system_ssh_server, is_container='container', yang_name="ssh-server", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ssh_server must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_ssh_server_openconfig_access_points__access_points_access_point_system_ssh_server, is_container='container', yang_name="ssh-server", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__ssh_server = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ssh_server(self):
    self.__ssh_server = YANGDynClass(base=yc_ssh_server_openconfig_access_points__access_points_access_point_system_ssh_server, is_container='container', yang_name="ssh-server", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_telnet_server(self):
    """
    Getter method for telnet_server, mapped from YANG variable /access_points/access_point/system/telnet_server (container)

    YANG Description: Top-level container for telnet terminal servers
    """
    return self.__telnet_server
      
  def _set_telnet_server(self, v, load=False):
    """
    Setter method for telnet_server, mapped from YANG variable /access_points/access_point/system/telnet_server (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_telnet_server is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_telnet_server() directly.

    YANG Description: Top-level container for telnet terminal servers
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_telnet_server_openconfig_access_points__access_points_access_point_system_telnet_server, is_container='container', yang_name="telnet-server", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """telnet_server must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_telnet_server_openconfig_access_points__access_points_access_point_system_telnet_server, is_container='container', yang_name="telnet-server", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__telnet_server = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_telnet_server(self):
    self.__telnet_server = YANGDynClass(base=yc_telnet_server_openconfig_access_points__access_points_access_point_system_telnet_server, is_container='container', yang_name="telnet-server", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_clock(self):
    """
    Getter method for clock, mapped from YANG variable /access_points/access_point/system/clock (container)

    YANG Description: Top-level container for clock configuration data
    """
    return self.__clock
      
  def _set_clock(self, v, load=False):
    """
    Setter method for clock, mapped from YANG variable /access_points/access_point/system/clock (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_clock is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_clock() directly.

    YANG Description: Top-level container for clock configuration data
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_clock_openconfig_access_points__access_points_access_point_system_clock, is_container='container', yang_name="clock", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """clock must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_clock_openconfig_access_points__access_points_access_point_system_clock, is_container='container', yang_name="clock", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__clock = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_clock(self):
    self.__clock = YANGDynClass(base=yc_clock_openconfig_access_points__access_points_access_point_system_clock, is_container='container', yang_name="clock", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_cpus(self):
    """
    Getter method for cpus, mapped from YANG variable /access_points/access_point/system/cpus (container)

    YANG Description: Enclosing container for the list of CPU cores on the
system
    """
    return self.__cpus
      
  def _set_cpus(self, v, load=False):
    """
    Setter method for cpus, mapped from YANG variable /access_points/access_point/system/cpus (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_cpus is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_cpus() directly.

    YANG Description: Enclosing container for the list of CPU cores on the
system
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_cpus_openconfig_access_points__access_points_access_point_system_cpus, is_container='container', yang_name="cpus", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """cpus must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_cpus_openconfig_access_points__access_points_access_point_system_cpus, is_container='container', yang_name="cpus", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__cpus = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_cpus(self):
    self.__cpus = YANGDynClass(base=yc_cpus_openconfig_access_points__access_points_access_point_system_cpus, is_container='container', yang_name="cpus", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_dns(self):
    """
    Getter method for dns, mapped from YANG variable /access_points/access_point/system/dns (container)

    YANG Description: Enclosing container for DNS resolver data
    """
    return self.__dns
      
  def _set_dns(self, v, load=False):
    """
    Setter method for dns, mapped from YANG variable /access_points/access_point/system/dns (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dns is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dns() directly.

    YANG Description: Enclosing container for DNS resolver data
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_dns_openconfig_access_points__access_points_access_point_system_dns, is_container='container', yang_name="dns", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dns must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_dns_openconfig_access_points__access_points_access_point_system_dns, is_container='container', yang_name="dns", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__dns = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dns(self):
    self.__dns = YANGDynClass(base=yc_dns_openconfig_access_points__access_points_access_point_system_dns, is_container='container', yang_name="dns", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_mac_address(self):
    """
    Getter method for mac_address, mapped from YANG variable /access_points/access_point/system/mac_address (container)

    YANG Description: Top-level container for system's MAC address configuration and state
    """
    return self.__mac_address
      
  def _set_mac_address(self, v, load=False):
    """
    Setter method for mac_address, mapped from YANG variable /access_points/access_point/system/mac_address (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mac_address is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mac_address() directly.

    YANG Description: Top-level container for system's MAC address configuration and state
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_mac_address_openconfig_access_points__access_points_access_point_system_mac_address, is_container='container', yang_name="mac-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mac_address must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_mac_address_openconfig_access_points__access_points_access_point_system_mac_address, is_container='container', yang_name="mac-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__mac_address = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mac_address(self):
    self.__mac_address = YANGDynClass(base=yc_mac_address_openconfig_access_points__access_points_access_point_system_mac_address, is_container='container', yang_name="mac-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_memory(self):
    """
    Getter method for memory, mapped from YANG variable /access_points/access_point/system/memory (container)

    YANG Description: Top-level container for system memory data
    """
    return self.__memory
      
  def _set_memory(self, v, load=False):
    """
    Setter method for memory, mapped from YANG variable /access_points/access_point/system/memory (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_memory is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_memory() directly.

    YANG Description: Top-level container for system memory data
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_memory_openconfig_access_points__access_points_access_point_system_memory, is_container='container', yang_name="memory", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """memory must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_memory_openconfig_access_points__access_points_access_point_system_memory, is_container='container', yang_name="memory", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__memory = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_memory(self):
    self.__memory = YANGDynClass(base=yc_memory_openconfig_access_points__access_points_access_point_system_memory, is_container='container', yang_name="memory", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_ntp(self):
    """
    Getter method for ntp, mapped from YANG variable /access_points/access_point/system/ntp (container)

    YANG Description: Top-level container for NTP configuration and state
    """
    return self.__ntp
      
  def _set_ntp(self, v, load=False):
    """
    Setter method for ntp, mapped from YANG variable /access_points/access_point/system/ntp (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ntp is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ntp() directly.

    YANG Description: Top-level container for NTP configuration and state
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_ntp_openconfig_access_points__access_points_access_point_system_ntp, is_container='container', yang_name="ntp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ntp must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_ntp_openconfig_access_points__access_points_access_point_system_ntp, is_container='container', yang_name="ntp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__ntp = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ntp(self):
    self.__ntp = YANGDynClass(base=yc_ntp_openconfig_access_points__access_points_access_point_system_ntp, is_container='container', yang_name="ntp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)
  mount_points = __builtin__.property(_get_mount_points, _set_mount_points)
  aaa = __builtin__.property(_get_aaa, _set_aaa)
  alarms = __builtin__.property(_get_alarms, _set_alarms)
  logging = __builtin__.property(_get_logging, _set_logging)
  processes = __builtin__.property(_get_processes, _set_processes)
  messages = __builtin__.property(_get_messages, _set_messages)
  license = __builtin__.property(_get_license, _set_license)
  ssh_server = __builtin__.property(_get_ssh_server, _set_ssh_server)
  telnet_server = __builtin__.property(_get_telnet_server, _set_telnet_server)
  clock = __builtin__.property(_get_clock, _set_clock)
  cpus = __builtin__.property(_get_cpus, _set_cpus)
  dns = __builtin__.property(_get_dns, _set_dns)
  mac_address = __builtin__.property(_get_mac_address, _set_mac_address)
  memory = __builtin__.property(_get_memory, _set_memory)
  ntp = __builtin__.property(_get_ntp, _set_ntp)


  _pyangbind_elements = OrderedDict([('config', config), ('state', state), ('mount_points', mount_points), ('aaa', aaa), ('alarms', alarms), ('logging', logging), ('processes', processes), ('messages', messages), ('license', license), ('ssh_server', ssh_server), ('telnet_server', telnet_server), ('clock', clock), ('cpus', cpus), ('dns', dns), ('mac_address', mac_address), ('memory', memory), ('ntp', ntp), ])


class yc_config_openconfig_access_points__access_points_access_point_assigned_ap_managers_ap_manager_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/assigned-ap-managers/ap-manager/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Config. container for assigning APs to managers.
  """
  __slots__ = ('_path_helper', '_extmethods', '__id','__fqdn','__ap_manager_ipv4_address','__ap_manager_ipv6_address',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__id = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=True)
    self.__fqdn = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(((([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.)*([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.?)|\\.)', 'length': ['1..253']}), is_leaf=True, yang_name="fqdn", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:domain-name', is_config=True)
    self.__ap_manager_ipv4_address = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}), is_leaf=True, yang_name="ap-manager-ipv4-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ipv4-address', is_config=True)
    self.__ap_manager_ipv6_address = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'})), is_leaf=False, yang_name="ap-manager-ipv6-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ipv6-address', is_config=True)

    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 ['access-points', 'access-point', 'assigned-ap-managers', 'ap-manager', 'config']

  def _get_id(self):
    """
    Getter method for id, mapped from YANG variable /access_points/access_point/assigned_ap_managers/ap_manager/config/id (string)

    YANG Description: The unique reference for the AP manager described in the list entry.
    """
    return self.__id
      
  def _set_id(self, v, load=False):
    """
    Setter method for id, mapped from YANG variable /access_points/access_point/assigned_ap_managers/ap_manager/config/id (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_id is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_id() directly.

    YANG Description: The unique reference for the AP manager described in the list entry.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """id must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=True)""",
        })

    self.__id = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_id(self):
    self.__id = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=True)


  def _get_fqdn(self):
    """
    Getter method for fqdn, mapped from YANG variable /access_points/access_point/assigned_ap_managers/ap_manager/config/fqdn (oc-inet:domain-name)

    YANG Description: The FQDN of a manager this AP is assigned to. The list should be
ordered, according to priority. eg Primary first,
Secondary second, Tertiary third etc.
    """
    return self.__fqdn
      
  def _set_fqdn(self, v, load=False):
    """
    Setter method for fqdn, mapped from YANG variable /access_points/access_point/assigned_ap_managers/ap_manager/config/fqdn (oc-inet:domain-name)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_fqdn is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_fqdn() directly.

    YANG Description: The FQDN of a manager this AP is assigned to. The list should be
ordered, according to priority. eg Primary first,
Secondary second, Tertiary third etc.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(((([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.)*([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.?)|\\.)', 'length': ['1..253']}), is_leaf=True, yang_name="fqdn", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:domain-name', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """fqdn must be of a type compatible with oc-inet:domain-name""",
          'defined-type': "oc-inet:domain-name",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(((([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.)*([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.?)|\\.)', 'length': ['1..253']}), is_leaf=True, yang_name="fqdn", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:domain-name', is_config=True)""",
        })

    self.__fqdn = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_fqdn(self):
    self.__fqdn = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(((([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.)*([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.?)|\\.)', 'length': ['1..253']}), is_leaf=True, yang_name="fqdn", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:domain-name', is_config=True)


  def _get_ap_manager_ipv4_address(self):
    """
    Getter method for ap_manager_ipv4_address, mapped from YANG variable /access_points/access_point/assigned_ap_managers/ap_manager/config/ap_manager_ipv4_address (oc-inet:ipv4-address)

    YANG Description: IPv4 address of a manager for this AP. The list should be
ordered, according to priority. eg. Primary first, Secondary second,
Tertiary third etc.
    """
    return self.__ap_manager_ipv4_address
      
  def _set_ap_manager_ipv4_address(self, v, load=False):
    """
    Setter method for ap_manager_ipv4_address, mapped from YANG variable /access_points/access_point/assigned_ap_managers/ap_manager/config/ap_manager_ipv4_address (oc-inet:ipv4-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ap_manager_ipv4_address is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ap_manager_ipv4_address() directly.

    YANG Description: IPv4 address of a manager for this AP. The list should be
ordered, according to priority. eg. Primary first, Secondary second,
Tertiary third etc.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}), is_leaf=True, yang_name="ap-manager-ipv4-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ipv4-address', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ap_manager_ipv4_address must be of a type compatible with oc-inet:ipv4-address""",
          'defined-type': "oc-inet:ipv4-address",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}), is_leaf=True, yang_name="ap-manager-ipv4-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ipv4-address', is_config=True)""",
        })

    self.__ap_manager_ipv4_address = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ap_manager_ipv4_address(self):
    self.__ap_manager_ipv4_address = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}), is_leaf=True, yang_name="ap-manager-ipv4-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ipv4-address', is_config=True)


  def _get_ap_manager_ipv6_address(self):
    """
    Getter method for ap_manager_ipv6_address, mapped from YANG variable /access_points/access_point/assigned_ap_managers/ap_manager/config/ap_manager_ipv6_address (oc-inet:ipv6-address)

    YANG Description: IPv6 address of a manager for this AP. The list should be
ordered, according to priority. eg. Primary first, Secondary second,
Tertiary third etc.
    """
    return self.__ap_manager_ipv6_address
      
  def _set_ap_manager_ipv6_address(self, v, load=False):
    """
    Setter method for ap_manager_ipv6_address, mapped from YANG variable /access_points/access_point/assigned_ap_managers/ap_manager/config/ap_manager_ipv6_address (oc-inet:ipv6-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ap_manager_ipv6_address is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ap_manager_ipv6_address() directly.

    YANG Description: IPv6 address of a manager for this AP. The list should be
ordered, according to priority. eg. Primary first, Secondary second,
Tertiary third etc.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'})), is_leaf=False, yang_name="ap-manager-ipv6-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ipv6-address', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ap_manager_ipv6_address must be of a type compatible with oc-inet:ipv6-address""",
          'defined-type': "oc-inet:ipv6-address",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'})), is_leaf=False, yang_name="ap-manager-ipv6-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ipv6-address', is_config=True)""",
        })

    self.__ap_manager_ipv6_address = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ap_manager_ipv6_address(self):
    self.__ap_manager_ipv6_address = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'})), is_leaf=False, yang_name="ap-manager-ipv6-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ipv6-address', is_config=True)

  id = __builtin__.property(_get_id, _set_id)
  fqdn = __builtin__.property(_get_fqdn, _set_fqdn)
  ap_manager_ipv4_address = __builtin__.property(_get_ap_manager_ipv4_address, _set_ap_manager_ipv4_address)
  ap_manager_ipv6_address = __builtin__.property(_get_ap_manager_ipv6_address, _set_ap_manager_ipv6_address)


  _pyangbind_elements = OrderedDict([('id', id), ('fqdn', fqdn), ('ap_manager_ipv4_address', ap_manager_ipv4_address), ('ap_manager_ipv6_address', ap_manager_ipv6_address), ])


class yc_state_openconfig_access_points__access_points_access_point_assigned_ap_managers_ap_manager_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/assigned-ap-managers/ap-manager/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: State container for APs assigned to managers.
  """
  __slots__ = ('_path_helper', '_extmethods', '__id','__fqdn','__ap_manager_ipv4_address','__ap_manager_ipv6_address','__joined',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__id = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)
    self.__fqdn = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(((([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.)*([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.?)|\\.)', 'length': ['1..253']}), is_leaf=True, yang_name="fqdn", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:domain-name', is_config=False)
    self.__ap_manager_ipv4_address = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}), is_leaf=True, yang_name="ap-manager-ipv4-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ipv4-address', is_config=False)
    self.__ap_manager_ipv6_address = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'})), is_leaf=False, yang_name="ap-manager-ipv6-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ipv6-address', is_config=False)
    self.__joined = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="joined", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', 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 ['access-points', 'access-point', 'assigned-ap-managers', 'ap-manager', 'state']

  def _get_id(self):
    """
    Getter method for id, mapped from YANG variable /access_points/access_point/assigned_ap_managers/ap_manager/state/id (string)

    YANG Description: The unique reference for the AP manager described in the list entry.
    """
    return self.__id
      
  def _set_id(self, v, load=False):
    """
    Setter method for id, mapped from YANG variable /access_points/access_point/assigned_ap_managers/ap_manager/state/id (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_id is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_id() directly.

    YANG Description: The unique reference for the AP manager described in the list entry.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """id must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)""",
        })

    self.__id = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_id(self):
    self.__id = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='string', is_config=False)


  def _get_fqdn(self):
    """
    Getter method for fqdn, mapped from YANG variable /access_points/access_point/assigned_ap_managers/ap_manager/state/fqdn (oc-inet:domain-name)

    YANG Description: The FQDN of a manager this AP is assigned to. The list should be
ordered, according to priority. eg Primary first,
Secondary second, Tertiary third etc.
    """
    return self.__fqdn
      
  def _set_fqdn(self, v, load=False):
    """
    Setter method for fqdn, mapped from YANG variable /access_points/access_point/assigned_ap_managers/ap_manager/state/fqdn (oc-inet:domain-name)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_fqdn is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_fqdn() directly.

    YANG Description: The FQDN of a manager this AP is assigned to. The list should be
ordered, according to priority. eg Primary first,
Secondary second, Tertiary third etc.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(((([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.)*([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.?)|\\.)', 'length': ['1..253']}), is_leaf=True, yang_name="fqdn", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:domain-name', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """fqdn must be of a type compatible with oc-inet:domain-name""",
          'defined-type': "oc-inet:domain-name",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(((([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.)*([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.?)|\\.)', 'length': ['1..253']}), is_leaf=True, yang_name="fqdn", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:domain-name', is_config=False)""",
        })

    self.__fqdn = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_fqdn(self):
    self.__fqdn = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(((([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.)*([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.?)|\\.)', 'length': ['1..253']}), is_leaf=True, yang_name="fqdn", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:domain-name', is_config=False)


  def _get_ap_manager_ipv4_address(self):
    """
    Getter method for ap_manager_ipv4_address, mapped from YANG variable /access_points/access_point/assigned_ap_managers/ap_manager/state/ap_manager_ipv4_address (oc-inet:ipv4-address)

    YANG Description: IPv4 address of a manager for this AP. The list should be
ordered, according to priority. eg. Primary first, Secondary second,
Tertiary third etc.
    """
    return self.__ap_manager_ipv4_address
      
  def _set_ap_manager_ipv4_address(self, v, load=False):
    """
    Setter method for ap_manager_ipv4_address, mapped from YANG variable /access_points/access_point/assigned_ap_managers/ap_manager/state/ap_manager_ipv4_address (oc-inet:ipv4-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ap_manager_ipv4_address is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ap_manager_ipv4_address() directly.

    YANG Description: IPv4 address of a manager for this AP. The list should be
ordered, according to priority. eg. Primary first, Secondary second,
Tertiary third etc.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}), is_leaf=True, yang_name="ap-manager-ipv4-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ipv4-address', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ap_manager_ipv4_address must be of a type compatible with oc-inet:ipv4-address""",
          'defined-type': "oc-inet:ipv4-address",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}), is_leaf=True, yang_name="ap-manager-ipv4-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ipv4-address', is_config=False)""",
        })

    self.__ap_manager_ipv4_address = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ap_manager_ipv4_address(self):
    self.__ap_manager_ipv4_address = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}), is_leaf=True, yang_name="ap-manager-ipv4-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ipv4-address', is_config=False)


  def _get_ap_manager_ipv6_address(self):
    """
    Getter method for ap_manager_ipv6_address, mapped from YANG variable /access_points/access_point/assigned_ap_managers/ap_manager/state/ap_manager_ipv6_address (oc-inet:ipv6-address)

    YANG Description: IPv6 address of a manager for this AP. The list should be
ordered, according to priority. eg. Primary first, Secondary second,
Tertiary third etc.
    """
    return self.__ap_manager_ipv6_address
      
  def _set_ap_manager_ipv6_address(self, v, load=False):
    """
    Setter method for ap_manager_ipv6_address, mapped from YANG variable /access_points/access_point/assigned_ap_managers/ap_manager/state/ap_manager_ipv6_address (oc-inet:ipv6-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ap_manager_ipv6_address is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ap_manager_ipv6_address() directly.

    YANG Description: IPv6 address of a manager for this AP. The list should be
ordered, according to priority. eg. Primary first, Secondary second,
Tertiary third etc.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'})), is_leaf=False, yang_name="ap-manager-ipv6-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ipv6-address', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ap_manager_ipv6_address must be of a type compatible with oc-inet:ipv6-address""",
          'defined-type': "oc-inet:ipv6-address",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'})), is_leaf=False, yang_name="ap-manager-ipv6-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ipv6-address', is_config=False)""",
        })

    self.__ap_manager_ipv6_address = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ap_manager_ipv6_address(self):
    self.__ap_manager_ipv6_address = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'})), is_leaf=False, yang_name="ap-manager-ipv6-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='oc-inet:ipv6-address', is_config=False)


  def _get_joined(self):
    """
    Getter method for joined, mapped from YANG variable /access_points/access_point/assigned_ap_managers/ap_manager/state/joined (boolean)

    YANG Description: True only if this AP is currently joined to a manager. If this AP
is configured to join manager(s), however is not currently joined
to any manager, this MUST return False.
    """
    return self.__joined
      
  def _set_joined(self, v, load=False):
    """
    Setter method for joined, mapped from YANG variable /access_points/access_point/assigned_ap_managers/ap_manager/state/joined (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_joined is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_joined() directly.

    YANG Description: True only if this AP is currently joined to a manager. If this AP
is configured to join manager(s), however is not currently joined
to any manager, this MUST return False.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="joined", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """joined must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="joined", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)""",
        })

    self.__joined = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_joined(self):
    self.__joined = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="joined", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='boolean', is_config=False)

  id = __builtin__.property(_get_id)
  fqdn = __builtin__.property(_get_fqdn)
  ap_manager_ipv4_address = __builtin__.property(_get_ap_manager_ipv4_address)
  ap_manager_ipv6_address = __builtin__.property(_get_ap_manager_ipv6_address)
  joined = __builtin__.property(_get_joined)


  _pyangbind_elements = OrderedDict([('id', id), ('fqdn', fqdn), ('ap_manager_ipv4_address', ap_manager_ipv4_address), ('ap_manager_ipv6_address', ap_manager_ipv6_address), ('joined', joined), ])


class yc_ap_manager_openconfig_access_points__access_points_access_point_assigned_ap_managers_ap_manager(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/assigned-ap-managers/ap-manager. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Manager(s) this AP is assigned to, referenced by id.
  """
  __slots__ = ('_path_helper', '_extmethods', '__id','__config','__state',)

  _yang_name = 'ap-manager'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__id = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_assigned_ap_managers_ap_manager_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_assigned_ap_managers_ap_manager_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'assigned-ap-managers', 'ap-manager']

  def _get_id(self):
    """
    Getter method for id, mapped from YANG variable /access_points/access_point/assigned_ap_managers/ap_manager/id (leafref)

    YANG Description: id serves as a reference point to the [1-n] manager(s) this AP
is assigned to.
    """
    return self.__id
      
  def _set_id(self, v, load=False):
    """
    Setter method for id, mapped from YANG variable /access_points/access_point/assigned_ap_managers/ap_manager/id (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_id is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_id() directly.

    YANG Description: id serves as a reference point to the [1-n] manager(s) this AP
is assigned to.
    """
    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="id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """id must be of a type compatible with leafref""",
          'defined-type': "leafref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)""",
        })

    self.__id = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_id(self):
    self.__id = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)


  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/assigned_ap_managers/ap_manager/config (container)

    YANG Description: Config. container for assigning APs to managers.
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/assigned_ap_managers/ap_manager/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Config. container for assigning APs to managers.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_access_points__access_points_access_point_assigned_ap_managers_ap_manager_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_assigned_ap_managers_ap_manager_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_assigned_ap_managers_ap_manager_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/assigned_ap_managers/ap_manager/state (container)

    YANG Description: State container for APs assigned to managers.
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/assigned_ap_managers/ap_manager/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 container for APs assigned to managers.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_assigned_ap_managers_ap_manager_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_assigned_ap_managers_ap_manager_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_assigned_ap_managers_ap_manager_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

  id = __builtin__.property(_get_id, _set_id)
  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)


  _pyangbind_elements = OrderedDict([('id', id), ('config', config), ('state', state), ])


class yc_assigned_ap_managers_openconfig_access_points__access_points_access_point_assigned_ap_managers(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/assigned-ap-managers. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Wireless manager(s) this AP is assigned to. eg. Primary
Secondary, Tertiary etc.
  """
  __slots__ = ('_path_helper', '_extmethods', '__ap_manager',)

  _yang_name = 'assigned-ap-managers'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__ap_manager = YANGDynClass(base=YANGListType("id",yc_ap_manager_openconfig_access_points__access_points_access_point_assigned_ap_managers_ap_manager, yang_name="ap-manager", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='id', extensions=None), is_container='list', yang_name="ap-manager", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)

    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 ['access-points', 'access-point', 'assigned-ap-managers']

  def _get_ap_manager(self):
    """
    Getter method for ap_manager, mapped from YANG variable /access_points/access_point/assigned_ap_managers/ap_manager (list)

    YANG Description: Manager(s) this AP is assigned to, referenced by id.
    """
    return self.__ap_manager
      
  def _set_ap_manager(self, v, load=False):
    """
    Setter method for ap_manager, mapped from YANG variable /access_points/access_point/assigned_ap_managers/ap_manager (list)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ap_manager is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ap_manager() directly.

    YANG Description: Manager(s) this AP is assigned to, referenced by id.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGListType("id",yc_ap_manager_openconfig_access_points__access_points_access_point_assigned_ap_managers_ap_manager, yang_name="ap-manager", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='id', extensions=None), is_container='list', yang_name="ap-manager", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ap_manager must be of a type compatible with list""",
          'defined-type': "list",
          'generated-type': """YANGDynClass(base=YANGListType("id",yc_ap_manager_openconfig_access_points__access_points_access_point_assigned_ap_managers_ap_manager, yang_name="ap-manager", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='id', extensions=None), is_container='list', yang_name="ap-manager", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)""",
        })

    self.__ap_manager = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ap_manager(self):
    self.__ap_manager = YANGDynClass(base=YANGListType("id",yc_ap_manager_openconfig_access_points__access_points_access_point_assigned_ap_managers_ap_manager, yang_name="ap-manager", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='id', extensions=None), is_container='list', yang_name="ap-manager", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)

  ap_manager = __builtin__.property(_get_ap_manager, _set_ap_manager)


  _pyangbind_elements = OrderedDict([('ap_manager', ap_manager), ])


class yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Configurable items at the global, physical interface
level.
  """
  __slots__ = ('_path_helper', '_extmethods', '__name','__type','__mtu','__loopback_mode','__description','__enabled',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='string', is_config=True)
    self.__type = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'iana-interface-type': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iana-interface-type': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'other': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:other': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'regular1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:regular1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdh1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdh1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ddnX25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ddnX25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rfc877x25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rfc877x25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ethernetCsmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ethernetCsmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88023Csmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88023Csmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88024TokenBus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88024TokenBus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025TokenRing': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025TokenRing': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88026Man': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88026Man': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'starLan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:starLan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'proteon10Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:proteon10Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'proteon80Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:proteon80Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hyperchannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hyperchannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fddi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fddi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'e1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:e1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'basicISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:basicISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'primaryISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:primaryISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propPointToPointSerial': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propPointToPointSerial': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ppp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ppp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'softwareLoopback': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:softwareLoopback': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'eon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:eon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ethernet3Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ethernet3Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'nsip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:nsip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'slip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:slip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ultra': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ultra': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds3': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds3': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rs232': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rs232': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'para': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:para': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arcnet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arcnet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arcnetPlus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arcnetPlus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'miox25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:miox25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25ple': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25ple': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88022llc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88022llc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'localTalk': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:localTalk': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'smdsDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:smdsDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayService': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayService': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v35': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v35': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hssi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hssi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hippi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hippi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'modem': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:modem': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aal5': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aal5': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetPath': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetPath': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetVT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetVT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'smdsIcip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:smdsIcip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propMultiplexor': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propMultiplexor': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80212': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80212': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fibreChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fibreChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hippiInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hippiInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayInterconnect': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayInterconnect': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aflane8023': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aflane8023': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aflane8025': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aflane8025': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cctEmul': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cctEmul': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v11': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v11': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v36': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v36': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g703at64k': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g703at64k': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g703at2mb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g703at2mb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'qllc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:qllc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastEtherFX': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastEtherFX': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'channel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:channel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80211': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80211': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ibm370parChan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ibm370parChan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'escon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:escon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dlsw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dlsw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdns': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdns': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rsrb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rsrb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmLogical': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmLogical': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds0': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds0': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds0Bundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds0Bundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bsc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bsc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'async': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:async': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cnr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cnr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025Dtr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025Dtr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'eplrs': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:eplrs': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propCnls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propCnls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hostPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hostPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'termPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:termPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayMPI': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayMPI': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x213': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x213': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'radsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:radsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025CRFPInt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025CRFPInt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'myrinet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:myrinet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEM': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEM': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFXO': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFXO': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFXS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFXS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEncap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEncap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmFuni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmFuni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmIma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmIma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pppMultilinkBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pppMultilinkBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverCdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverCdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverClaw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverClaw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'stackToStack': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:stackToStack': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'virtualIpAddress': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:virtualIpAddress': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025Fiber': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025Fiber': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gigabitEthernet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gigabitEthernet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v37': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v37': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25mlp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25mlp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25huntGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25huntGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'transpHdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:transpHdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'interleave': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:interleave': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'a12MppSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:a12MppSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'coffee': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:coffee': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ces': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ces': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmSubInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmSubInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l2vlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l2vlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l3ipvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l3ipvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l3ipxvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l3ipxvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'digitalPowerline': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:digitalPowerline': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mediaMailOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mediaMailOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dcn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dcn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'msdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:msdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee1394': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee1394': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'if-gsn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:if-gsn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mplsTunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mplsTunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'srp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:srp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverFrameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverFrameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'idsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:idsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'compositeLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:compositeLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ss7SigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ss7SigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propWirelessP2P': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propWirelessP2P': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rfc1483': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rfc1483': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'usb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:usb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee8023adLag': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee8023adLag': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bgppolicyaccounting': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bgppolicyaccounting': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frf16MfrBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frf16MfrBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'h323Gatekeeper': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:h323Gatekeeper': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'h323Proxy': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:h323Proxy': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mfSigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mfSigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'shdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:shdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds1FDL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds1FDL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pos': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pos': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbAsiIn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbAsiIn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbAsiOut': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbAsiOut': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'plc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:plc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'nfas': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:nfas': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tr008': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tr008': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gr303RDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gr303RDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gr303IDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gr303IDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hiperlan2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hiperlan2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propBWAp2Mp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propBWAp2Mp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'digitalWrapperOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:digitalWrapperOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aal2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aal2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'radioMAC': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:radioMAC': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'imt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:imt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mvl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mvl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'reachDSL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:reachDSL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frDlciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frDlciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmVciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmVciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverCable': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverCable': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'infiniband': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:infiniband': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'teLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:teLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'q2931': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:q2931': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'virtualTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:virtualTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sipTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sipTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sipSig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sipSig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstreamChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstreamChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'econet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:econet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pon155': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pon155': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pon622': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pon622': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bridge': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bridge': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'linegroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:linegroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEMFGD': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEMFGD': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFGDEANA': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFGDEANA': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceDID': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceDID': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpegTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpegTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sixToFour': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sixToFour': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gtp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gtp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pdnEtherLoop1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pdnEtherLoop1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pdnEtherLoop2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pdnEtherLoop2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalChannelGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalChannelGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'homepna': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:homepna': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gfp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gfp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ciscoISLvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ciscoISLvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'actelisMetaLOOP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:actelisMetaLOOP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fcipLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fcipLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rpr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rpr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'qam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:qam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lmp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lmp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cblVectaStar': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cblVectaStar': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableMCmtsDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableMCmtsDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'macSecControlledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:macSecControlledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'macSecUncontrolledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:macSecUncontrolledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aviciOpticalEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aviciOpticalEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmbond': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmbond': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFGDOS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFGDOS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mocaVersion1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mocaVersion1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80216WMAN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80216WMAN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl2plus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl2plus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRcsMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRcsMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbTdm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbTdm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRcsTdma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRcsTdma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x86Laps': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x86Laps': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'wwanPP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:wwanPP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'wwanPP2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:wwanPP2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEBS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEBS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ifPwType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ifPwType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ilan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ilan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluELP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluELP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapDot11Profile': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapDot11Profile': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapDot11Bss': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapDot11Bss': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapWtpVirtualRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapWtpVirtualRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bits': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bits': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cableDownstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cableDownstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vmwareVirtualNic': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vmwareVirtualNic': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee802154': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee802154': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOdu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOdu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ifVfiType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ifVfiType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9981': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9981': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9982': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9982': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9983': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9983': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponLogicalLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponLogicalLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluGponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluGponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluGponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluGponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vmwareNicTeam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vmwareNicTeam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsOfdmDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsOfdmDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsOfdmaUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsOfdmaUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gfast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gfast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdci': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdci': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'xboxWireless': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:xboxWireless': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d1FwdOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d1FwdOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d1RetOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d1RetOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d2DsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d2DsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d2UsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d2UsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableNdf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableNdf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableNdr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableNdr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ptm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ptm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ghn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ghn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtsi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtsi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtuc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtuc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOduc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOduc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtsig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtsig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'microwaveCarrierTermination': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:microwaveCarrierTermination': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'microwaveRadioLinkTerminal': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:microwaveRadioLinkTerminal': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}},), is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='identityref', is_config=True)
    self.__mtu = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="mtu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint16', is_config=True)
    self.__loopback_mode = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'NONE': {}, 'FACILITY': {}, 'TERMINAL': {}},), default=six.text_type("NONE"), is_leaf=True, yang_name="loopback-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-opt-types:loopback-mode-type', is_config=True)
    self.__description = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="description", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='string', is_config=True)
    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'config']

  def _get_name(self):
    """
    Getter method for name, mapped from YANG variable /access_points/access_point/interfaces/interface/config/name (string)

    YANG Description: The name of the interface.

A device MAY restrict the allowed values for this leaf,
possibly depending on the type of the interface.
For system-controlled interfaces, this leaf is the
device-specific name of the interface.  The 'config false'
list interfaces/interface[name]/state contains the currently
existing interfaces on the device.

If a client tries to create configuration for a
system-controlled interface that is not present in the
corresponding state list, the server MAY reject
the request if the implementation does not support
pre-provisioning of interfaces or if the name refers to
an interface that can never exist in the system.  A
NETCONF server MUST reply with an rpc-error with the
error-tag 'invalid-value' in this case.

The IETF model in RFC 7223 provides YANG features for the
following (i.e., pre-provisioning and arbitrary-names),
however they are omitted here:

 If the device supports pre-provisioning of interface
 configuration, the 'pre-provisioning' feature is
 advertised.

 If the device allows arbitrarily named user-controlled
 interfaces, the 'arbitrary-names' feature is advertised.

When a configured user-controlled interface is created by
the system, it is instantiated with the same name in the
/interfaces/interface[name]/state list.
    """
    return self.__name
      
  def _set_name(self, v, load=False):
    """
    Setter method for name, mapped from YANG variable /access_points/access_point/interfaces/interface/config/name (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_name is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_name() directly.

    YANG Description: The name of the interface.

A device MAY restrict the allowed values for this leaf,
possibly depending on the type of the interface.
For system-controlled interfaces, this leaf is the
device-specific name of the interface.  The 'config false'
list interfaces/interface[name]/state contains the currently
existing interfaces on the device.

If a client tries to create configuration for a
system-controlled interface that is not present in the
corresponding state list, the server MAY reject
the request if the implementation does not support
pre-provisioning of interfaces or if the name refers to
an interface that can never exist in the system.  A
NETCONF server MUST reply with an rpc-error with the
error-tag 'invalid-value' in this case.

The IETF model in RFC 7223 provides YANG features for the
following (i.e., pre-provisioning and arbitrary-names),
however they are omitted here:

 If the device supports pre-provisioning of interface
 configuration, the 'pre-provisioning' feature is
 advertised.

 If the device allows arbitrarily named user-controlled
 interfaces, the 'arbitrary-names' feature is advertised.

When a configured user-controlled interface is created by
the system, it is instantiated with the same name in the
/interfaces/interface[name]/state list.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='string', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """name must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='string', is_config=True)""",
        })

    self.__name = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_name(self):
    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='string', is_config=True)


  def _get_type(self):
    """
    Getter method for type, mapped from YANG variable /access_points/access_point/interfaces/interface/config/type (identityref)

    YANG Description: The type of the interface.

When an interface entry is created, a server MAY
initialize the type leaf with a valid value, e.g., if it
is possible to derive the type from the name of the
interface.

If a client tries to set the type of an interface to a
value that can never be used by the system, e.g., if the
type is not supported or if the type does not match the
name of the interface, the server MUST reject the request.
A NETCONF server MUST reply with an rpc-error with the
error-tag 'invalid-value' in this case.
    """
    return self.__type
      
  def _set_type(self, v, load=False):
    """
    Setter method for type, mapped from YANG variable /access_points/access_point/interfaces/interface/config/type (identityref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_type is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_type() directly.

    YANG Description: The type of the interface.

When an interface entry is created, a server MAY
initialize the type leaf with a valid value, e.g., if it
is possible to derive the type from the name of the
interface.

If a client tries to set the type of an interface to a
value that can never be used by the system, e.g., if the
type is not supported or if the type does not match the
name of the interface, the server MUST reject the request.
A NETCONF server MUST reply with an rpc-error with the
error-tag 'invalid-value' in this case.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'iana-interface-type': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iana-interface-type': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'other': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:other': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'regular1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:regular1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdh1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdh1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ddnX25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ddnX25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rfc877x25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rfc877x25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ethernetCsmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ethernetCsmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88023Csmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88023Csmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88024TokenBus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88024TokenBus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025TokenRing': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025TokenRing': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88026Man': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88026Man': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'starLan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:starLan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'proteon10Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:proteon10Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'proteon80Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:proteon80Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hyperchannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hyperchannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fddi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fddi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'e1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:e1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'basicISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:basicISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'primaryISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:primaryISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propPointToPointSerial': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propPointToPointSerial': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ppp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ppp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'softwareLoopback': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:softwareLoopback': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'eon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:eon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ethernet3Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ethernet3Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'nsip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:nsip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'slip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:slip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ultra': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ultra': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds3': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds3': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rs232': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rs232': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'para': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:para': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arcnet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arcnet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arcnetPlus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arcnetPlus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'miox25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:miox25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25ple': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25ple': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88022llc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88022llc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'localTalk': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:localTalk': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'smdsDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:smdsDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayService': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayService': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v35': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v35': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hssi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hssi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hippi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hippi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'modem': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:modem': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aal5': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aal5': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetPath': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetPath': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetVT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetVT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'smdsIcip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:smdsIcip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propMultiplexor': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propMultiplexor': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80212': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80212': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fibreChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fibreChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hippiInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hippiInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayInterconnect': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayInterconnect': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aflane8023': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aflane8023': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aflane8025': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aflane8025': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cctEmul': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cctEmul': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v11': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v11': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v36': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v36': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g703at64k': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g703at64k': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g703at2mb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g703at2mb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'qllc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:qllc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastEtherFX': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastEtherFX': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'channel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:channel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80211': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80211': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ibm370parChan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ibm370parChan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'escon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:escon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dlsw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dlsw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdns': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdns': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rsrb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rsrb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmLogical': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmLogical': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds0': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds0': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds0Bundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds0Bundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bsc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bsc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'async': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:async': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cnr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cnr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025Dtr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025Dtr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'eplrs': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:eplrs': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propCnls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propCnls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hostPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hostPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'termPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:termPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayMPI': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayMPI': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x213': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x213': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'radsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:radsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025CRFPInt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025CRFPInt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'myrinet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:myrinet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEM': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEM': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFXO': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFXO': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFXS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFXS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEncap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEncap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmFuni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmFuni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmIma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmIma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pppMultilinkBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pppMultilinkBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverCdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverCdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverClaw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverClaw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'stackToStack': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:stackToStack': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'virtualIpAddress': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:virtualIpAddress': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025Fiber': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025Fiber': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gigabitEthernet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gigabitEthernet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v37': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v37': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25mlp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25mlp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25huntGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25huntGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'transpHdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:transpHdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'interleave': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:interleave': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'a12MppSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:a12MppSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'coffee': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:coffee': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ces': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ces': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmSubInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmSubInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l2vlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l2vlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l3ipvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l3ipvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l3ipxvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l3ipxvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'digitalPowerline': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:digitalPowerline': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mediaMailOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mediaMailOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dcn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dcn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'msdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:msdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee1394': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee1394': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'if-gsn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:if-gsn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mplsTunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mplsTunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'srp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:srp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverFrameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverFrameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'idsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:idsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'compositeLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:compositeLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ss7SigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ss7SigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propWirelessP2P': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propWirelessP2P': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rfc1483': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rfc1483': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'usb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:usb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee8023adLag': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee8023adLag': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bgppolicyaccounting': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bgppolicyaccounting': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frf16MfrBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frf16MfrBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'h323Gatekeeper': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:h323Gatekeeper': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'h323Proxy': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:h323Proxy': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mfSigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mfSigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'shdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:shdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds1FDL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds1FDL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pos': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pos': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbAsiIn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbAsiIn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbAsiOut': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbAsiOut': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'plc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:plc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'nfas': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:nfas': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tr008': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tr008': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gr303RDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gr303RDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gr303IDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gr303IDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hiperlan2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hiperlan2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propBWAp2Mp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propBWAp2Mp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'digitalWrapperOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:digitalWrapperOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aal2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aal2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'radioMAC': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:radioMAC': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'imt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:imt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mvl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mvl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'reachDSL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:reachDSL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frDlciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frDlciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmVciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmVciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverCable': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverCable': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'infiniband': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:infiniband': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'teLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:teLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'q2931': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:q2931': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'virtualTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:virtualTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sipTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sipTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sipSig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sipSig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstreamChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstreamChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'econet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:econet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pon155': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pon155': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pon622': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pon622': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bridge': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bridge': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'linegroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:linegroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEMFGD': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEMFGD': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFGDEANA': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFGDEANA': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceDID': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceDID': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpegTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpegTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sixToFour': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sixToFour': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gtp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gtp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pdnEtherLoop1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pdnEtherLoop1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pdnEtherLoop2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pdnEtherLoop2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalChannelGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalChannelGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'homepna': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:homepna': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gfp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gfp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ciscoISLvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ciscoISLvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'actelisMetaLOOP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:actelisMetaLOOP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fcipLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fcipLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rpr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rpr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'qam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:qam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lmp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lmp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cblVectaStar': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cblVectaStar': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableMCmtsDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableMCmtsDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'macSecControlledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:macSecControlledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'macSecUncontrolledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:macSecUncontrolledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aviciOpticalEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aviciOpticalEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmbond': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmbond': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFGDOS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFGDOS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mocaVersion1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mocaVersion1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80216WMAN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80216WMAN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl2plus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl2plus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRcsMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRcsMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbTdm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbTdm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRcsTdma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRcsTdma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x86Laps': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x86Laps': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'wwanPP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:wwanPP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'wwanPP2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:wwanPP2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEBS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEBS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ifPwType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ifPwType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ilan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ilan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluELP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluELP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapDot11Profile': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapDot11Profile': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapDot11Bss': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapDot11Bss': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapWtpVirtualRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapWtpVirtualRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bits': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bits': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cableDownstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cableDownstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vmwareVirtualNic': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vmwareVirtualNic': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee802154': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee802154': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOdu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOdu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ifVfiType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ifVfiType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9981': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9981': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9982': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9982': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9983': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9983': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponLogicalLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponLogicalLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluGponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluGponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluGponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluGponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vmwareNicTeam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vmwareNicTeam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsOfdmDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsOfdmDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsOfdmaUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsOfdmaUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gfast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gfast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdci': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdci': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'xboxWireless': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:xboxWireless': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d1FwdOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d1FwdOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d1RetOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d1RetOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d2DsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d2DsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d2UsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d2UsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableNdf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableNdf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableNdr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableNdr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ptm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ptm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ghn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ghn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtsi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtsi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtuc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtuc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOduc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOduc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtsig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtsig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'microwaveCarrierTermination': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:microwaveCarrierTermination': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'microwaveRadioLinkTerminal': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:microwaveRadioLinkTerminal': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}},), is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='identityref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """type must be of a type compatible with identityref""",
          'defined-type': "openconfig-ap-interfaces:identityref",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'iana-interface-type': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iana-interface-type': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'other': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:other': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'regular1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:regular1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdh1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdh1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ddnX25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ddnX25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rfc877x25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rfc877x25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ethernetCsmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ethernetCsmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88023Csmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88023Csmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88024TokenBus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88024TokenBus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025TokenRing': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025TokenRing': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88026Man': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88026Man': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'starLan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:starLan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'proteon10Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:proteon10Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'proteon80Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:proteon80Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hyperchannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hyperchannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fddi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fddi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'e1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:e1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'basicISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:basicISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'primaryISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:primaryISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propPointToPointSerial': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propPointToPointSerial': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ppp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ppp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'softwareLoopback': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:softwareLoopback': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'eon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:eon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ethernet3Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ethernet3Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'nsip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:nsip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'slip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:slip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ultra': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ultra': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds3': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds3': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rs232': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rs232': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'para': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:para': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arcnet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arcnet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arcnetPlus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arcnetPlus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'miox25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:miox25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25ple': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25ple': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88022llc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88022llc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'localTalk': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:localTalk': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'smdsDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:smdsDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayService': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayService': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v35': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v35': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hssi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hssi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hippi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hippi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'modem': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:modem': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aal5': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aal5': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetPath': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetPath': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetVT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetVT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'smdsIcip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:smdsIcip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propMultiplexor': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propMultiplexor': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80212': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80212': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fibreChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fibreChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hippiInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hippiInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayInterconnect': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayInterconnect': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aflane8023': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aflane8023': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aflane8025': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aflane8025': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cctEmul': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cctEmul': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v11': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v11': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v36': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v36': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g703at64k': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g703at64k': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g703at2mb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g703at2mb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'qllc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:qllc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastEtherFX': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastEtherFX': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'channel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:channel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80211': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80211': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ibm370parChan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ibm370parChan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'escon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:escon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dlsw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dlsw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdns': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdns': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rsrb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rsrb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmLogical': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmLogical': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds0': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds0': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds0Bundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds0Bundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bsc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bsc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'async': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:async': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cnr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cnr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025Dtr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025Dtr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'eplrs': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:eplrs': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propCnls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propCnls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hostPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hostPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'termPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:termPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayMPI': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayMPI': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x213': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x213': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'radsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:radsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025CRFPInt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025CRFPInt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'myrinet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:myrinet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEM': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEM': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFXO': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFXO': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFXS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFXS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEncap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEncap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmFuni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmFuni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmIma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmIma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pppMultilinkBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pppMultilinkBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverCdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverCdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverClaw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverClaw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'stackToStack': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:stackToStack': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'virtualIpAddress': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:virtualIpAddress': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025Fiber': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025Fiber': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gigabitEthernet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gigabitEthernet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v37': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v37': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25mlp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25mlp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25huntGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25huntGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'transpHdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:transpHdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'interleave': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:interleave': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'a12MppSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:a12MppSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'coffee': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:coffee': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ces': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ces': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmSubInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmSubInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l2vlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l2vlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l3ipvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l3ipvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l3ipxvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l3ipxvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'digitalPowerline': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:digitalPowerline': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mediaMailOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mediaMailOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dcn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dcn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'msdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:msdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee1394': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee1394': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'if-gsn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:if-gsn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mplsTunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mplsTunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'srp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:srp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverFrameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverFrameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'idsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:idsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'compositeLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:compositeLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ss7SigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ss7SigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propWirelessP2P': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propWirelessP2P': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rfc1483': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rfc1483': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'usb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:usb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee8023adLag': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee8023adLag': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bgppolicyaccounting': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bgppolicyaccounting': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frf16MfrBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frf16MfrBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'h323Gatekeeper': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:h323Gatekeeper': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'h323Proxy': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:h323Proxy': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mfSigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mfSigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'shdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:shdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds1FDL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds1FDL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pos': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pos': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbAsiIn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbAsiIn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbAsiOut': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbAsiOut': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'plc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:plc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'nfas': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:nfas': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tr008': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tr008': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gr303RDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gr303RDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gr303IDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gr303IDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hiperlan2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hiperlan2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propBWAp2Mp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propBWAp2Mp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'digitalWrapperOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:digitalWrapperOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aal2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aal2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'radioMAC': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:radioMAC': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'imt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:imt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mvl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mvl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'reachDSL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:reachDSL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frDlciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frDlciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmVciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmVciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverCable': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverCable': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'infiniband': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:infiniband': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'teLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:teLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'q2931': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:q2931': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'virtualTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:virtualTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sipTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sipTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sipSig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sipSig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstreamChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstreamChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'econet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:econet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pon155': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pon155': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pon622': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pon622': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bridge': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bridge': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'linegroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:linegroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEMFGD': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEMFGD': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFGDEANA': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFGDEANA': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceDID': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceDID': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpegTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpegTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sixToFour': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sixToFour': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gtp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gtp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pdnEtherLoop1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pdnEtherLoop1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pdnEtherLoop2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pdnEtherLoop2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalChannelGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalChannelGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'homepna': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:homepna': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gfp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gfp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ciscoISLvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ciscoISLvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'actelisMetaLOOP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:actelisMetaLOOP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fcipLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fcipLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rpr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rpr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'qam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:qam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lmp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lmp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cblVectaStar': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cblVectaStar': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableMCmtsDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableMCmtsDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'macSecControlledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:macSecControlledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'macSecUncontrolledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:macSecUncontrolledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aviciOpticalEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aviciOpticalEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmbond': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmbond': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFGDOS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFGDOS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mocaVersion1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mocaVersion1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80216WMAN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80216WMAN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl2plus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl2plus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRcsMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRcsMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbTdm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbTdm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRcsTdma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRcsTdma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x86Laps': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x86Laps': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'wwanPP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:wwanPP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'wwanPP2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:wwanPP2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEBS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEBS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ifPwType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ifPwType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ilan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ilan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluELP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluELP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapDot11Profile': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapDot11Profile': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapDot11Bss': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapDot11Bss': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapWtpVirtualRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapWtpVirtualRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bits': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bits': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cableDownstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cableDownstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vmwareVirtualNic': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vmwareVirtualNic': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee802154': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee802154': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOdu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOdu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ifVfiType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ifVfiType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9981': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9981': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9982': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9982': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9983': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9983': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponLogicalLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponLogicalLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluGponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluGponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluGponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluGponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vmwareNicTeam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vmwareNicTeam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsOfdmDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsOfdmDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsOfdmaUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsOfdmaUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gfast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gfast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdci': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdci': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'xboxWireless': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:xboxWireless': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d1FwdOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d1FwdOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d1RetOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d1RetOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d2DsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d2DsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d2UsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d2UsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableNdf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableNdf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableNdr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableNdr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ptm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ptm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ghn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ghn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtsi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtsi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtuc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtuc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOduc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOduc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtsig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtsig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'microwaveCarrierTermination': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:microwaveCarrierTermination': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'microwaveRadioLinkTerminal': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:microwaveRadioLinkTerminal': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}},), is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='identityref', is_config=True)""",
        })

    self.__type = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_type(self):
    self.__type = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'iana-interface-type': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iana-interface-type': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'other': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:other': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'regular1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:regular1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdh1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdh1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ddnX25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ddnX25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rfc877x25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rfc877x25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ethernetCsmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ethernetCsmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88023Csmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88023Csmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88024TokenBus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88024TokenBus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025TokenRing': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025TokenRing': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88026Man': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88026Man': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'starLan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:starLan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'proteon10Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:proteon10Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'proteon80Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:proteon80Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hyperchannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hyperchannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fddi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fddi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'e1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:e1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'basicISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:basicISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'primaryISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:primaryISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propPointToPointSerial': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propPointToPointSerial': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ppp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ppp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'softwareLoopback': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:softwareLoopback': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'eon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:eon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ethernet3Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ethernet3Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'nsip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:nsip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'slip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:slip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ultra': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ultra': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds3': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds3': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rs232': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rs232': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'para': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:para': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arcnet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arcnet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arcnetPlus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arcnetPlus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'miox25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:miox25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25ple': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25ple': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88022llc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88022llc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'localTalk': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:localTalk': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'smdsDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:smdsDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayService': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayService': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v35': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v35': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hssi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hssi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hippi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hippi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'modem': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:modem': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aal5': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aal5': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetPath': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetPath': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetVT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetVT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'smdsIcip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:smdsIcip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propMultiplexor': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propMultiplexor': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80212': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80212': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fibreChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fibreChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hippiInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hippiInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayInterconnect': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayInterconnect': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aflane8023': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aflane8023': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aflane8025': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aflane8025': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cctEmul': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cctEmul': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v11': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v11': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v36': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v36': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g703at64k': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g703at64k': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g703at2mb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g703at2mb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'qllc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:qllc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastEtherFX': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastEtherFX': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'channel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:channel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80211': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80211': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ibm370parChan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ibm370parChan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'escon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:escon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dlsw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dlsw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdns': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdns': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rsrb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rsrb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmLogical': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmLogical': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds0': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds0': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds0Bundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds0Bundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bsc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bsc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'async': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:async': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cnr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cnr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025Dtr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025Dtr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'eplrs': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:eplrs': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propCnls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propCnls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hostPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hostPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'termPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:termPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayMPI': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayMPI': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x213': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x213': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'radsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:radsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025CRFPInt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025CRFPInt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'myrinet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:myrinet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEM': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEM': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFXO': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFXO': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFXS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFXS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEncap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEncap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmFuni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmFuni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmIma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmIma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pppMultilinkBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pppMultilinkBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverCdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverCdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverClaw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverClaw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'stackToStack': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:stackToStack': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'virtualIpAddress': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:virtualIpAddress': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025Fiber': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025Fiber': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gigabitEthernet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gigabitEthernet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v37': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v37': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25mlp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25mlp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25huntGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25huntGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'transpHdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:transpHdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'interleave': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:interleave': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'a12MppSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:a12MppSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'coffee': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:coffee': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ces': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ces': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmSubInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmSubInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l2vlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l2vlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l3ipvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l3ipvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l3ipxvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l3ipxvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'digitalPowerline': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:digitalPowerline': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mediaMailOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mediaMailOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dcn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dcn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'msdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:msdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee1394': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee1394': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'if-gsn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:if-gsn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mplsTunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mplsTunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'srp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:srp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverFrameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverFrameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'idsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:idsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'compositeLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:compositeLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ss7SigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ss7SigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propWirelessP2P': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propWirelessP2P': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rfc1483': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rfc1483': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'usb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:usb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee8023adLag': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee8023adLag': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bgppolicyaccounting': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bgppolicyaccounting': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frf16MfrBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frf16MfrBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'h323Gatekeeper': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:h323Gatekeeper': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'h323Proxy': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:h323Proxy': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mfSigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mfSigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'shdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:shdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds1FDL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds1FDL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pos': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pos': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbAsiIn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbAsiIn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbAsiOut': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbAsiOut': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'plc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:plc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'nfas': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:nfas': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tr008': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tr008': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gr303RDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gr303RDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gr303IDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gr303IDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hiperlan2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hiperlan2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propBWAp2Mp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propBWAp2Mp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'digitalWrapperOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:digitalWrapperOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aal2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aal2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'radioMAC': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:radioMAC': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'imt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:imt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mvl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mvl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'reachDSL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:reachDSL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frDlciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frDlciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmVciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmVciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverCable': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverCable': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'infiniband': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:infiniband': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'teLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:teLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'q2931': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:q2931': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'virtualTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:virtualTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sipTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sipTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sipSig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sipSig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstreamChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstreamChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'econet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:econet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pon155': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pon155': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pon622': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pon622': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bridge': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bridge': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'linegroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:linegroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEMFGD': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEMFGD': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFGDEANA': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFGDEANA': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceDID': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceDID': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpegTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpegTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sixToFour': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sixToFour': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gtp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gtp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pdnEtherLoop1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pdnEtherLoop1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pdnEtherLoop2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pdnEtherLoop2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalChannelGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalChannelGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'homepna': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:homepna': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gfp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gfp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ciscoISLvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ciscoISLvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'actelisMetaLOOP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:actelisMetaLOOP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fcipLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fcipLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rpr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rpr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'qam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:qam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lmp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lmp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cblVectaStar': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cblVectaStar': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableMCmtsDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableMCmtsDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'macSecControlledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:macSecControlledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'macSecUncontrolledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:macSecUncontrolledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aviciOpticalEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aviciOpticalEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmbond': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmbond': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFGDOS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFGDOS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mocaVersion1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mocaVersion1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80216WMAN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80216WMAN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl2plus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl2plus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRcsMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRcsMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbTdm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbTdm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRcsTdma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRcsTdma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x86Laps': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x86Laps': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'wwanPP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:wwanPP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'wwanPP2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:wwanPP2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEBS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEBS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ifPwType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ifPwType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ilan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ilan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluELP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluELP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapDot11Profile': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapDot11Profile': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapDot11Bss': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapDot11Bss': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapWtpVirtualRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapWtpVirtualRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bits': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bits': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cableDownstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cableDownstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vmwareVirtualNic': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vmwareVirtualNic': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee802154': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee802154': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOdu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOdu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ifVfiType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ifVfiType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9981': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9981': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9982': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9982': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9983': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9983': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponLogicalLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponLogicalLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluGponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluGponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluGponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluGponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vmwareNicTeam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vmwareNicTeam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsOfdmDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsOfdmDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsOfdmaUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsOfdmaUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gfast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gfast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdci': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdci': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'xboxWireless': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:xboxWireless': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d1FwdOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d1FwdOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d1RetOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d1RetOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d2DsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d2DsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d2UsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d2UsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableNdf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableNdf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableNdr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableNdr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ptm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ptm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ghn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ghn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtsi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtsi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtuc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtuc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOduc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOduc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtsig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtsig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'microwaveCarrierTermination': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:microwaveCarrierTermination': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'microwaveRadioLinkTerminal': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:microwaveRadioLinkTerminal': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}},), is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='identityref', is_config=True)


  def _get_mtu(self):
    """
    Getter method for mtu, mapped from YANG variable /access_points/access_point/interfaces/interface/config/mtu (uint16)

    YANG Description: Set the max transmission unit size in octets
for the physical interface.  If this is not set, the mtu is
set to the operational default -- e.g., 1514 bytes on an
Ethernet interface.
    """
    return self.__mtu
      
  def _set_mtu(self, v, load=False):
    """
    Setter method for mtu, mapped from YANG variable /access_points/access_point/interfaces/interface/config/mtu (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mtu is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mtu() directly.

    YANG Description: Set the max transmission unit size in octets
for the physical interface.  If this is not set, the mtu is
set to the operational default -- e.g., 1514 bytes on an
Ethernet interface.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="mtu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint16', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mtu must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="mtu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint16', is_config=True)""",
        })

    self.__mtu = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mtu(self):
    self.__mtu = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="mtu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint16', is_config=True)


  def _get_loopback_mode(self):
    """
    Getter method for loopback_mode, mapped from YANG variable /access_points/access_point/interfaces/interface/config/loopback_mode (oc-opt-types:loopback-mode-type)

    YANG Description: Sets the loopback type on the interface. Setting the
mode to something besides NONE activates the loopback in
the specified mode.
    """
    return self.__loopback_mode
      
  def _set_loopback_mode(self, v, load=False):
    """
    Setter method for loopback_mode, mapped from YANG variable /access_points/access_point/interfaces/interface/config/loopback_mode (oc-opt-types:loopback-mode-type)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_loopback_mode is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_loopback_mode() directly.

    YANG Description: Sets the loopback type on the interface. Setting the
mode to something besides NONE activates the loopback in
the specified mode.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'NONE': {}, 'FACILITY': {}, 'TERMINAL': {}},), default=six.text_type("NONE"), is_leaf=True, yang_name="loopback-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-opt-types:loopback-mode-type', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """loopback_mode must be of a type compatible with oc-opt-types:loopback-mode-type""",
          'defined-type': "oc-opt-types:loopback-mode-type",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'NONE': {}, 'FACILITY': {}, 'TERMINAL': {}},), default=six.text_type("NONE"), is_leaf=True, yang_name="loopback-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-opt-types:loopback-mode-type', is_config=True)""",
        })

    self.__loopback_mode = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_loopback_mode(self):
    self.__loopback_mode = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'NONE': {}, 'FACILITY': {}, 'TERMINAL': {}},), default=six.text_type("NONE"), is_leaf=True, yang_name="loopback-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-opt-types:loopback-mode-type', is_config=True)


  def _get_description(self):
    """
    Getter method for description, mapped from YANG variable /access_points/access_point/interfaces/interface/config/description (string)

    YANG Description: A textual description of the interface.

A server implementation MAY map this leaf to the ifAlias
MIB object.  Such an implementation needs to use some
mechanism to handle the differences in size and characters
allowed between this leaf and ifAlias.  The definition of
such a mechanism is outside the scope of this document.

Since ifAlias is defined to be stored in non-volatile
storage, the MIB implementation MUST map ifAlias to the
value of 'description' in the persistently stored
datastore.

Specifically, if the device supports ':startup', when
ifAlias is read the device MUST return the value of
'description' in the 'startup' datastore, and when it is
written, it MUST be written to the 'running' and 'startup'
datastores.  Note that it is up to the implementation to

decide whether to modify this single leaf in 'startup' or
perform an implicit copy-config from 'running' to
'startup'.

If the device does not support ':startup', ifAlias MUST
be mapped to the 'description' leaf in the 'running'
datastore.
    """
    return self.__description
      
  def _set_description(self, v, load=False):
    """
    Setter method for description, mapped from YANG variable /access_points/access_point/interfaces/interface/config/description (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_description is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_description() directly.

    YANG Description: A textual description of the interface.

A server implementation MAY map this leaf to the ifAlias
MIB object.  Such an implementation needs to use some
mechanism to handle the differences in size and characters
allowed between this leaf and ifAlias.  The definition of
such a mechanism is outside the scope of this document.

Since ifAlias is defined to be stored in non-volatile
storage, the MIB implementation MUST map ifAlias to the
value of 'description' in the persistently stored
datastore.

Specifically, if the device supports ':startup', when
ifAlias is read the device MUST return the value of
'description' in the 'startup' datastore, and when it is
written, it MUST be written to the 'running' and 'startup'
datastores.  Note that it is up to the implementation to

decide whether to modify this single leaf in 'startup' or
perform an implicit copy-config from 'running' to
'startup'.

If the device does not support ':startup', ifAlias MUST
be mapped to the 'description' leaf in the 'running'
datastore.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="description", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='string', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """description must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="description", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='string', is_config=True)""",
        })

    self.__description = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_description(self):
    self.__description = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="description", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='string', is_config=True)


  def _get_enabled(self):
    """
    Getter method for enabled, mapped from YANG variable /access_points/access_point/interfaces/interface/config/enabled (boolean)

    YANG Description: This leaf contains the configured, desired state of the
interface.

Systems that implement the IF-MIB use the value of this
leaf in the 'running' datastore to set
IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry
has been initialized, as described in RFC 2863.

Changes in this leaf in the 'running' datastore are
reflected in ifAdminStatus, but if ifAdminStatus is
changed over SNMP, this leaf is not affected.
    """
    return self.__enabled
      
  def _set_enabled(self, v, load=False):
    """
    Setter method for enabled, mapped from YANG variable /access_points/access_point/interfaces/interface/config/enabled (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_enabled is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_enabled() directly.

    YANG Description: This leaf contains the configured, desired state of the
interface.

Systems that implement the IF-MIB use the value of this
leaf in the 'running' datastore to set
IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry
has been initialized, as described in RFC 2863.

Changes in this leaf in the 'running' datastore are
reflected in ifAdminStatus, but if ifAdminStatus is
changed over SNMP, this leaf is not affected.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """enabled must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)""",
        })

    self.__enabled = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_enabled(self):
    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)

  name = __builtin__.property(_get_name, _set_name)
  type = __builtin__.property(_get_type, _set_type)
  mtu = __builtin__.property(_get_mtu, _set_mtu)
  loopback_mode = __builtin__.property(_get_loopback_mode, _set_loopback_mode)
  description = __builtin__.property(_get_description, _set_description)
  enabled = __builtin__.property(_get_enabled, _set_enabled)


  _pyangbind_elements = OrderedDict([('name', name), ('type', type), ('mtu', mtu), ('loopback_mode', loopback_mode), ('description', description), ('enabled', enabled), ])


class yc_counters_openconfig_access_points__access_points_access_point_interfaces_interface_state_counters(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/state/counters. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: A collection of interface-related statistics objects.
  """
  __slots__ = ('_path_helper', '_extmethods', '__in_octets','__in_pkts','__in_unicast_pkts','__in_broadcast_pkts','__in_multicast_pkts','__in_discards','__in_errors','__in_unknown_protos','__in_fcs_errors','__out_octets','__out_pkts','__out_unicast_pkts','__out_broadcast_pkts','__out_multicast_pkts','__out_discards','__out_errors','__carrier_transitions','__last_clear',)

  _yang_name = 'counters'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__in_octets = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__in_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__in_unicast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-unicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__in_broadcast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-broadcast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__in_multicast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-multicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__in_discards = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-discards", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__in_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__in_unknown_protos = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-unknown-protos", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__in_fcs_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-fcs-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__out_octets = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__out_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__out_unicast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-unicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__out_broadcast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-broadcast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__out_multicast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-multicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__out_discards = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-discards", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__out_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__carrier_transitions = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="carrier-transitions", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__last_clear = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-clear", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-types:timeticks64', 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 ['access-points', 'access-point', 'interfaces', 'interface', 'state', 'counters']

  def _get_in_octets(self):
    """
    Getter method for in_octets, mapped from YANG variable /access_points/access_point/interfaces/interface/state/counters/in_octets (oc-yang:counter64)

    YANG Description: The total number of octets received on the interface,
including framing characters.

Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
'last-clear'.
    """
    return self.__in_octets
      
  def _set_in_octets(self, v, load=False):
    """
    Setter method for in_octets, mapped from YANG variable /access_points/access_point/interfaces/interface/state/counters/in_octets (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_in_octets is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_in_octets() directly.

    YANG Description: The total number of octets received on the interface,
including framing characters.

Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
'last-clear'.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """in_octets must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__in_octets = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_in_octets(self):
    self.__in_octets = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_in_pkts(self):
    """
    Getter method for in_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/state/counters/in_pkts (oc-yang:counter64)

    YANG Description: The total number of packets received on the interface,
including all unicast, multicast, broadcast and bad packets
etc.
    """
    return self.__in_pkts
      
  def _set_in_pkts(self, v, load=False):
    """
    Setter method for in_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/state/counters/in_pkts (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_in_pkts is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_in_pkts() directly.

    YANG Description: The total number of packets received on the interface,
including all unicast, multicast, broadcast and bad packets
etc.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """in_pkts must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__in_pkts = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_in_pkts(self):
    self.__in_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_in_unicast_pkts(self):
    """
    Getter method for in_unicast_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/state/counters/in_unicast_pkts (oc-yang:counter64)

    YANG Description: The number of packets, delivered by this sub-layer to a
higher (sub-)layer, that were not addressed to a
multicast or broadcast address at this sub-layer.

Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
'last-clear'.
    """
    return self.__in_unicast_pkts
      
  def _set_in_unicast_pkts(self, v, load=False):
    """
    Setter method for in_unicast_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/state/counters/in_unicast_pkts (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_in_unicast_pkts is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_in_unicast_pkts() directly.

    YANG Description: The number of packets, delivered by this sub-layer to a
higher (sub-)layer, that were not addressed to a
multicast or broadcast address at this sub-layer.

Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
'last-clear'.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-unicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """in_unicast_pkts must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-unicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__in_unicast_pkts = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_in_unicast_pkts(self):
    self.__in_unicast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-unicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_in_broadcast_pkts(self):
    """
    Getter method for in_broadcast_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/state/counters/in_broadcast_pkts (oc-yang:counter64)

    YANG Description: The number of packets, delivered by this sub-layer to a
higher (sub-)layer, that were addressed to a broadcast
address at this sub-layer.

Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
'last-clear'.
    """
    return self.__in_broadcast_pkts
      
  def _set_in_broadcast_pkts(self, v, load=False):
    """
    Setter method for in_broadcast_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/state/counters/in_broadcast_pkts (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_in_broadcast_pkts is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_in_broadcast_pkts() directly.

    YANG Description: The number of packets, delivered by this sub-layer to a
higher (sub-)layer, that were addressed to a broadcast
address at this sub-layer.

Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
'last-clear'.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-broadcast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """in_broadcast_pkts must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-broadcast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__in_broadcast_pkts = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_in_broadcast_pkts(self):
    self.__in_broadcast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-broadcast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_in_multicast_pkts(self):
    """
    Getter method for in_multicast_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/state/counters/in_multicast_pkts (oc-yang:counter64)

    YANG Description: The number of packets, delivered by this sub-layer to a
higher (sub-)layer, that were addressed to a multicast
address at this sub-layer.  For a MAC-layer protocol,
this includes both Group and Functional addresses.

Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
'last-clear'.
    """
    return self.__in_multicast_pkts
      
  def _set_in_multicast_pkts(self, v, load=False):
    """
    Setter method for in_multicast_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/state/counters/in_multicast_pkts (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_in_multicast_pkts is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_in_multicast_pkts() directly.

    YANG Description: The number of packets, delivered by this sub-layer to a
higher (sub-)layer, that were addressed to a multicast
address at this sub-layer.  For a MAC-layer protocol,
this includes both Group and Functional addresses.

Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
'last-clear'.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-multicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """in_multicast_pkts must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-multicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__in_multicast_pkts = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_in_multicast_pkts(self):
    self.__in_multicast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-multicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_in_discards(self):
    """
    Getter method for in_discards, mapped from YANG variable /access_points/access_point/interfaces/interface/state/counters/in_discards (oc-yang:counter64)

    YANG Description: The number of inbound packets that were chosen to be
discarded even though no errors had been detected to
prevent their being deliverable to a higher-layer
protocol.  One possible reason for discarding such a
packet could be to free up buffer space.

Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
'last-clear'.
    """
    return self.__in_discards
      
  def _set_in_discards(self, v, load=False):
    """
    Setter method for in_discards, mapped from YANG variable /access_points/access_point/interfaces/interface/state/counters/in_discards (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_in_discards is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_in_discards() directly.

    YANG Description: The number of inbound packets that were chosen to be
discarded even though no errors had been detected to
prevent their being deliverable to a higher-layer
protocol.  One possible reason for discarding such a
packet could be to free up buffer space.

Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
'last-clear'.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-discards", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """in_discards must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-discards", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__in_discards = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_in_discards(self):
    self.__in_discards = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-discards", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_in_errors(self):
    """
    Getter method for in_errors, mapped from YANG variable /access_points/access_point/interfaces/interface/state/counters/in_errors (oc-yang:counter64)

    YANG Description: For packet-oriented interfaces, the number of inbound
packets that contained errors preventing them from being
deliverable to a higher-layer protocol.  For character-
oriented or fixed-length interfaces, the number of
inbound transmission units that contained errors
preventing them from being deliverable to a higher-layer
protocol.

Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
'last-clear'.
    """
    return self.__in_errors
      
  def _set_in_errors(self, v, load=False):
    """
    Setter method for in_errors, mapped from YANG variable /access_points/access_point/interfaces/interface/state/counters/in_errors (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_in_errors is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_in_errors() directly.

    YANG Description: For packet-oriented interfaces, the number of inbound
packets that contained errors preventing them from being
deliverable to a higher-layer protocol.  For character-
oriented or fixed-length interfaces, the number of
inbound transmission units that contained errors
preventing them from being deliverable to a higher-layer
protocol.

Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
'last-clear'.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """in_errors must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__in_errors = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_in_errors(self):
    self.__in_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_in_unknown_protos(self):
    """
    Getter method for in_unknown_protos, mapped from YANG variable /access_points/access_point/interfaces/interface/state/counters/in_unknown_protos (oc-yang:counter64)

    YANG Description: For packet-oriented interfaces, the number of packets
received via the interface that were discarded because
of an unknown or unsupported protocol.  For
character-oriented or fixed-length interfaces that
support protocol multiplexing, the number of
transmission units received via the interface that were
discarded because of an unknown or unsupported protocol.
For any interface that does not support protocol
multiplexing, this counter is not present.

Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
'last-clear'.
    """
    return self.__in_unknown_protos
      
  def _set_in_unknown_protos(self, v, load=False):
    """
    Setter method for in_unknown_protos, mapped from YANG variable /access_points/access_point/interfaces/interface/state/counters/in_unknown_protos (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_in_unknown_protos is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_in_unknown_protos() directly.

    YANG Description: For packet-oriented interfaces, the number of packets
received via the interface that were discarded because
of an unknown or unsupported protocol.  For
character-oriented or fixed-length interfaces that
support protocol multiplexing, the number of
transmission units received via the interface that were
discarded because of an unknown or unsupported protocol.
For any interface that does not support protocol
multiplexing, this counter is not present.

Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
'last-clear'.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-unknown-protos", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """in_unknown_protos must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-unknown-protos", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__in_unknown_protos = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_in_unknown_protos(self):
    self.__in_unknown_protos = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-unknown-protos", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_in_fcs_errors(self):
    """
    Getter method for in_fcs_errors, mapped from YANG variable /access_points/access_point/interfaces/interface/state/counters/in_fcs_errors (oc-yang:counter64)

    YANG Description: Number of received packets which had errors in the
frame check sequence (FCS), i.e., framing errors.

Discontinuities in the value of this counter can occur
when the device is re-initialization as indicated by the
value of 'last-clear'.
    """
    return self.__in_fcs_errors
      
  def _set_in_fcs_errors(self, v, load=False):
    """
    Setter method for in_fcs_errors, mapped from YANG variable /access_points/access_point/interfaces/interface/state/counters/in_fcs_errors (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_in_fcs_errors is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_in_fcs_errors() directly.

    YANG Description: Number of received packets which had errors in the
frame check sequence (FCS), i.e., framing errors.

Discontinuities in the value of this counter can occur
when the device is re-initialization as indicated by the
value of 'last-clear'.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-fcs-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """in_fcs_errors must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-fcs-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__in_fcs_errors = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_in_fcs_errors(self):
    self.__in_fcs_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-fcs-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_out_octets(self):
    """
    Getter method for out_octets, mapped from YANG variable /access_points/access_point/interfaces/interface/state/counters/out_octets (oc-yang:counter64)

    YANG Description: The total number of octets transmitted out of the
interface, including framing characters.

Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
'last-clear'.
    """
    return self.__out_octets
      
  def _set_out_octets(self, v, load=False):
    """
    Setter method for out_octets, mapped from YANG variable /access_points/access_point/interfaces/interface/state/counters/out_octets (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_out_octets is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_out_octets() directly.

    YANG Description: The total number of octets transmitted out of the
interface, including framing characters.

Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
'last-clear'.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """out_octets must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__out_octets = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_out_octets(self):
    self.__out_octets = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_out_pkts(self):
    """
    Getter method for out_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/state/counters/out_pkts (oc-yang:counter64)

    YANG Description: The total number of packets transmitted out of the
interface, including all unicast, multicast, broadcast,
and bad packets etc.
    """
    return self.__out_pkts
      
  def _set_out_pkts(self, v, load=False):
    """
    Setter method for out_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/state/counters/out_pkts (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_out_pkts is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_out_pkts() directly.

    YANG Description: The total number of packets transmitted out of the
interface, including all unicast, multicast, broadcast,
and bad packets etc.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """out_pkts must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__out_pkts = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_out_pkts(self):
    self.__out_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_out_unicast_pkts(self):
    """
    Getter method for out_unicast_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/state/counters/out_unicast_pkts (oc-yang:counter64)

    YANG Description: The total number of packets that higher-level protocols
requested be transmitted, and that were not addressed
to a multicast or broadcast address at this sub-layer,
including those that were discarded or not sent.

Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
'last-clear'.
    """
    return self.__out_unicast_pkts
      
  def _set_out_unicast_pkts(self, v, load=False):
    """
    Setter method for out_unicast_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/state/counters/out_unicast_pkts (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_out_unicast_pkts is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_out_unicast_pkts() directly.

    YANG Description: The total number of packets that higher-level protocols
requested be transmitted, and that were not addressed
to a multicast or broadcast address at this sub-layer,
including those that were discarded or not sent.

Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
'last-clear'.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-unicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """out_unicast_pkts must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-unicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__out_unicast_pkts = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_out_unicast_pkts(self):
    self.__out_unicast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-unicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_out_broadcast_pkts(self):
    """
    Getter method for out_broadcast_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/state/counters/out_broadcast_pkts (oc-yang:counter64)

    YANG Description: The total number of packets that higher-level protocols
requested be transmitted, and that were addressed to a
broadcast address at this sub-layer, including those
that were discarded or not sent.

Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
'last-clear'.
    """
    return self.__out_broadcast_pkts
      
  def _set_out_broadcast_pkts(self, v, load=False):
    """
    Setter method for out_broadcast_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/state/counters/out_broadcast_pkts (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_out_broadcast_pkts is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_out_broadcast_pkts() directly.

    YANG Description: The total number of packets that higher-level protocols
requested be transmitted, and that were addressed to a
broadcast address at this sub-layer, including those
that were discarded or not sent.

Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
'last-clear'.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-broadcast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """out_broadcast_pkts must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-broadcast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__out_broadcast_pkts = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_out_broadcast_pkts(self):
    self.__out_broadcast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-broadcast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_out_multicast_pkts(self):
    """
    Getter method for out_multicast_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/state/counters/out_multicast_pkts (oc-yang:counter64)

    YANG Description: The total number of packets that higher-level protocols
requested be transmitted, and that were addressed to a
multicast address at this sub-layer, including those
that were discarded or not sent.  For a MAC-layer
protocol, this includes both Group and Functional
addresses.

Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
'last-clear'.
    """
    return self.__out_multicast_pkts
      
  def _set_out_multicast_pkts(self, v, load=False):
    """
    Setter method for out_multicast_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/state/counters/out_multicast_pkts (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_out_multicast_pkts is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_out_multicast_pkts() directly.

    YANG Description: The total number of packets that higher-level protocols
requested be transmitted, and that were addressed to a
multicast address at this sub-layer, including those
that were discarded or not sent.  For a MAC-layer
protocol, this includes both Group and Functional
addresses.

Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
'last-clear'.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-multicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """out_multicast_pkts must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-multicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__out_multicast_pkts = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_out_multicast_pkts(self):
    self.__out_multicast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-multicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_out_discards(self):
    """
    Getter method for out_discards, mapped from YANG variable /access_points/access_point/interfaces/interface/state/counters/out_discards (oc-yang:counter64)

    YANG Description: The number of outbound packets that were chosen to be
discarded even though no errors had been detected to
prevent their being transmitted.  One possible reason
for discarding such a packet could be to free up buffer
space.

Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
'last-clear'.
    """
    return self.__out_discards
      
  def _set_out_discards(self, v, load=False):
    """
    Setter method for out_discards, mapped from YANG variable /access_points/access_point/interfaces/interface/state/counters/out_discards (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_out_discards is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_out_discards() directly.

    YANG Description: The number of outbound packets that were chosen to be
discarded even though no errors had been detected to
prevent their being transmitted.  One possible reason
for discarding such a packet could be to free up buffer
space.

Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
'last-clear'.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-discards", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """out_discards must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-discards", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__out_discards = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_out_discards(self):
    self.__out_discards = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-discards", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_out_errors(self):
    """
    Getter method for out_errors, mapped from YANG variable /access_points/access_point/interfaces/interface/state/counters/out_errors (oc-yang:counter64)

    YANG Description: For packet-oriented interfaces, the number of outbound
packets that could not be transmitted because of errors.
For character-oriented or fixed-length interfaces, the
number of outbound transmission units that could not be
transmitted because of errors.

Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
'last-clear'.
    """
    return self.__out_errors
      
  def _set_out_errors(self, v, load=False):
    """
    Setter method for out_errors, mapped from YANG variable /access_points/access_point/interfaces/interface/state/counters/out_errors (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_out_errors is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_out_errors() directly.

    YANG Description: For packet-oriented interfaces, the number of outbound
packets that could not be transmitted because of errors.
For character-oriented or fixed-length interfaces, the
number of outbound transmission units that could not be
transmitted because of errors.

Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
'last-clear'.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """out_errors must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__out_errors = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_out_errors(self):
    self.__out_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_carrier_transitions(self):
    """
    Getter method for carrier_transitions, mapped from YANG variable /access_points/access_point/interfaces/interface/state/counters/carrier_transitions (oc-yang:counter64)

    YANG Description: Number of times the interface state has transitioned
between up and down since the time the device restarted
or the last-clear time, whichever is most recent.
    """
    return self.__carrier_transitions
      
  def _set_carrier_transitions(self, v, load=False):
    """
    Setter method for carrier_transitions, mapped from YANG variable /access_points/access_point/interfaces/interface/state/counters/carrier_transitions (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_carrier_transitions is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_carrier_transitions() directly.

    YANG Description: Number of times the interface state has transitioned
between up and down since the time the device restarted
or the last-clear time, whichever is most recent.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="carrier-transitions", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """carrier_transitions must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="carrier-transitions", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__carrier_transitions = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_carrier_transitions(self):
    self.__carrier_transitions = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="carrier-transitions", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_last_clear(self):
    """
    Getter method for last_clear, mapped from YANG variable /access_points/access_point/interfaces/interface/state/counters/last_clear (oc-types:timeticks64)

    YANG Description: Timestamp of the last time the interface counters were
cleared.

The value is the timestamp in nanoseconds relative to
the Unix Epoch (Jan 1, 1970 00:00:00 UTC).
    """
    return self.__last_clear
      
  def _set_last_clear(self, v, load=False):
    """
    Setter method for last_clear, mapped from YANG variable /access_points/access_point/interfaces/interface/state/counters/last_clear (oc-types:timeticks64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_last_clear is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_last_clear() directly.

    YANG Description: Timestamp of the last time the interface counters were
cleared.

The value is the timestamp in nanoseconds relative to
the Unix Epoch (Jan 1, 1970 00:00:00 UTC).
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-clear", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-types:timeticks64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """last_clear must be of a type compatible with oc-types:timeticks64""",
          'defined-type': "oc-types:timeticks64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-clear", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-types:timeticks64', is_config=False)""",
        })

    self.__last_clear = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_last_clear(self):
    self.__last_clear = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-clear", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-types:timeticks64', is_config=False)

  in_octets = __builtin__.property(_get_in_octets)
  in_pkts = __builtin__.property(_get_in_pkts)
  in_unicast_pkts = __builtin__.property(_get_in_unicast_pkts)
  in_broadcast_pkts = __builtin__.property(_get_in_broadcast_pkts)
  in_multicast_pkts = __builtin__.property(_get_in_multicast_pkts)
  in_discards = __builtin__.property(_get_in_discards)
  in_errors = __builtin__.property(_get_in_errors)
  in_unknown_protos = __builtin__.property(_get_in_unknown_protos)
  in_fcs_errors = __builtin__.property(_get_in_fcs_errors)
  out_octets = __builtin__.property(_get_out_octets)
  out_pkts = __builtin__.property(_get_out_pkts)
  out_unicast_pkts = __builtin__.property(_get_out_unicast_pkts)
  out_broadcast_pkts = __builtin__.property(_get_out_broadcast_pkts)
  out_multicast_pkts = __builtin__.property(_get_out_multicast_pkts)
  out_discards = __builtin__.property(_get_out_discards)
  out_errors = __builtin__.property(_get_out_errors)
  carrier_transitions = __builtin__.property(_get_carrier_transitions)
  last_clear = __builtin__.property(_get_last_clear)


  _pyangbind_elements = OrderedDict([('in_octets', in_octets), ('in_pkts', in_pkts), ('in_unicast_pkts', in_unicast_pkts), ('in_broadcast_pkts', in_broadcast_pkts), ('in_multicast_pkts', in_multicast_pkts), ('in_discards', in_discards), ('in_errors', in_errors), ('in_unknown_protos', in_unknown_protos), ('in_fcs_errors', in_fcs_errors), ('out_octets', out_octets), ('out_pkts', out_pkts), ('out_unicast_pkts', out_unicast_pkts), ('out_broadcast_pkts', out_broadcast_pkts), ('out_multicast_pkts', out_multicast_pkts), ('out_discards', out_discards), ('out_errors', out_errors), ('carrier_transitions', carrier_transitions), ('last_clear', last_clear), ])


class yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Operational state data at the global interface level.
  """
  __slots__ = ('_path_helper', '_extmethods', '__name','__type','__mtu','__loopback_mode','__description','__enabled','__ifindex','__admin_status','__oper_status','__last_change','__logical','__management','__cpu','__counters',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='string', is_config=False)
    self.__type = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'iana-interface-type': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iana-interface-type': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'other': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:other': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'regular1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:regular1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdh1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdh1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ddnX25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ddnX25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rfc877x25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rfc877x25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ethernetCsmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ethernetCsmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88023Csmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88023Csmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88024TokenBus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88024TokenBus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025TokenRing': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025TokenRing': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88026Man': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88026Man': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'starLan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:starLan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'proteon10Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:proteon10Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'proteon80Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:proteon80Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hyperchannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hyperchannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fddi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fddi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'e1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:e1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'basicISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:basicISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'primaryISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:primaryISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propPointToPointSerial': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propPointToPointSerial': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ppp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ppp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'softwareLoopback': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:softwareLoopback': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'eon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:eon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ethernet3Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ethernet3Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'nsip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:nsip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'slip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:slip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ultra': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ultra': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds3': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds3': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rs232': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rs232': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'para': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:para': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arcnet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arcnet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arcnetPlus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arcnetPlus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'miox25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:miox25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25ple': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25ple': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88022llc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88022llc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'localTalk': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:localTalk': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'smdsDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:smdsDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayService': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayService': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v35': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v35': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hssi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hssi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hippi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hippi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'modem': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:modem': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aal5': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aal5': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetPath': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetPath': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetVT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetVT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'smdsIcip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:smdsIcip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propMultiplexor': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propMultiplexor': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80212': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80212': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fibreChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fibreChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hippiInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hippiInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayInterconnect': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayInterconnect': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aflane8023': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aflane8023': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aflane8025': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aflane8025': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cctEmul': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cctEmul': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v11': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v11': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v36': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v36': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g703at64k': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g703at64k': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g703at2mb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g703at2mb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'qllc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:qllc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastEtherFX': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastEtherFX': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'channel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:channel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80211': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80211': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ibm370parChan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ibm370parChan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'escon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:escon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dlsw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dlsw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdns': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdns': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rsrb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rsrb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmLogical': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmLogical': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds0': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds0': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds0Bundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds0Bundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bsc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bsc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'async': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:async': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cnr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cnr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025Dtr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025Dtr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'eplrs': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:eplrs': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propCnls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propCnls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hostPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hostPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'termPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:termPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayMPI': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayMPI': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x213': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x213': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'radsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:radsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025CRFPInt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025CRFPInt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'myrinet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:myrinet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEM': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEM': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFXO': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFXO': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFXS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFXS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEncap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEncap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmFuni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmFuni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmIma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmIma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pppMultilinkBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pppMultilinkBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverCdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverCdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverClaw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverClaw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'stackToStack': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:stackToStack': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'virtualIpAddress': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:virtualIpAddress': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025Fiber': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025Fiber': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gigabitEthernet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gigabitEthernet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v37': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v37': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25mlp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25mlp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25huntGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25huntGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'transpHdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:transpHdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'interleave': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:interleave': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'a12MppSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:a12MppSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'coffee': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:coffee': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ces': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ces': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmSubInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmSubInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l2vlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l2vlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l3ipvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l3ipvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l3ipxvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l3ipxvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'digitalPowerline': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:digitalPowerline': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mediaMailOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mediaMailOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dcn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dcn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'msdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:msdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee1394': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee1394': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'if-gsn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:if-gsn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mplsTunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mplsTunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'srp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:srp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverFrameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverFrameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'idsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:idsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'compositeLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:compositeLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ss7SigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ss7SigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propWirelessP2P': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propWirelessP2P': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rfc1483': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rfc1483': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'usb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:usb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee8023adLag': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee8023adLag': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bgppolicyaccounting': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bgppolicyaccounting': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frf16MfrBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frf16MfrBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'h323Gatekeeper': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:h323Gatekeeper': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'h323Proxy': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:h323Proxy': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mfSigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mfSigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'shdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:shdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds1FDL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds1FDL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pos': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pos': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbAsiIn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbAsiIn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbAsiOut': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbAsiOut': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'plc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:plc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'nfas': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:nfas': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tr008': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tr008': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gr303RDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gr303RDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gr303IDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gr303IDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hiperlan2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hiperlan2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propBWAp2Mp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propBWAp2Mp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'digitalWrapperOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:digitalWrapperOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aal2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aal2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'radioMAC': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:radioMAC': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'imt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:imt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mvl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mvl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'reachDSL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:reachDSL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frDlciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frDlciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmVciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmVciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverCable': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverCable': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'infiniband': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:infiniband': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'teLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:teLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'q2931': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:q2931': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'virtualTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:virtualTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sipTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sipTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sipSig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sipSig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstreamChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstreamChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'econet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:econet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pon155': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pon155': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pon622': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pon622': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bridge': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bridge': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'linegroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:linegroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEMFGD': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEMFGD': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFGDEANA': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFGDEANA': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceDID': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceDID': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpegTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpegTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sixToFour': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sixToFour': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gtp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gtp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pdnEtherLoop1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pdnEtherLoop1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pdnEtherLoop2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pdnEtherLoop2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalChannelGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalChannelGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'homepna': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:homepna': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gfp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gfp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ciscoISLvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ciscoISLvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'actelisMetaLOOP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:actelisMetaLOOP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fcipLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fcipLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rpr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rpr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'qam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:qam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lmp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lmp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cblVectaStar': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cblVectaStar': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableMCmtsDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableMCmtsDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'macSecControlledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:macSecControlledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'macSecUncontrolledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:macSecUncontrolledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aviciOpticalEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aviciOpticalEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmbond': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmbond': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFGDOS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFGDOS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mocaVersion1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mocaVersion1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80216WMAN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80216WMAN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl2plus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl2plus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRcsMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRcsMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbTdm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbTdm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRcsTdma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRcsTdma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x86Laps': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x86Laps': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'wwanPP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:wwanPP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'wwanPP2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:wwanPP2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEBS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEBS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ifPwType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ifPwType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ilan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ilan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluELP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluELP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapDot11Profile': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapDot11Profile': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapDot11Bss': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapDot11Bss': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapWtpVirtualRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapWtpVirtualRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bits': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bits': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cableDownstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cableDownstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vmwareVirtualNic': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vmwareVirtualNic': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee802154': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee802154': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOdu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOdu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ifVfiType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ifVfiType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9981': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9981': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9982': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9982': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9983': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9983': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponLogicalLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponLogicalLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluGponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluGponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluGponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluGponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vmwareNicTeam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vmwareNicTeam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsOfdmDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsOfdmDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsOfdmaUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsOfdmaUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gfast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gfast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdci': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdci': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'xboxWireless': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:xboxWireless': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d1FwdOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d1FwdOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d1RetOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d1RetOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d2DsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d2DsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d2UsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d2UsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableNdf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableNdf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableNdr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableNdr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ptm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ptm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ghn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ghn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtsi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtsi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtuc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtuc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOduc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOduc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtsig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtsig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'microwaveCarrierTermination': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:microwaveCarrierTermination': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'microwaveRadioLinkTerminal': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:microwaveRadioLinkTerminal': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}},), is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='identityref', is_config=False)
    self.__mtu = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="mtu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint16', is_config=False)
    self.__loopback_mode = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'NONE': {}, 'FACILITY': {}, 'TERMINAL': {}},), default=six.text_type("NONE"), is_leaf=True, yang_name="loopback-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-opt-types:loopback-mode-type', is_config=False)
    self.__description = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="description", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='string', is_config=False)
    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)
    self.__ifindex = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="ifindex", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=False)
    self.__admin_status = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'UP': {}, 'DOWN': {}, 'TESTING': {}},), is_leaf=True, yang_name="admin-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', is_config=False)
    self.__oper_status = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'UP': {'value': 1}, 'DOWN': {'value': 2}, 'TESTING': {'value': 3}, 'UNKNOWN': {'value': 4}, 'DORMANT': {'value': 5}, 'NOT_PRESENT': {'value': 6}, 'LOWER_LAYER_DOWN': {'value': 7}},), is_leaf=True, yang_name="oper-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', is_config=False)
    self.__last_change = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-change", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-types:timeticks64', is_config=False)
    self.__logical = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="logical", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)
    self.__management = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="management", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)
    self.__cpu = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="cpu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)
    self.__counters = YANGDynClass(base=yc_counters_openconfig_access_points__access_points_access_point_interfaces_interface_state_counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', 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 ['access-points', 'access-point', 'interfaces', 'interface', 'state']

  def _get_name(self):
    """
    Getter method for name, mapped from YANG variable /access_points/access_point/interfaces/interface/state/name (string)

    YANG Description: The name of the interface.

A device MAY restrict the allowed values for this leaf,
possibly depending on the type of the interface.
For system-controlled interfaces, this leaf is the
device-specific name of the interface.  The 'config false'
list interfaces/interface[name]/state contains the currently
existing interfaces on the device.

If a client tries to create configuration for a
system-controlled interface that is not present in the
corresponding state list, the server MAY reject
the request if the implementation does not support
pre-provisioning of interfaces or if the name refers to
an interface that can never exist in the system.  A
NETCONF server MUST reply with an rpc-error with the
error-tag 'invalid-value' in this case.

The IETF model in RFC 7223 provides YANG features for the
following (i.e., pre-provisioning and arbitrary-names),
however they are omitted here:

 If the device supports pre-provisioning of interface
 configuration, the 'pre-provisioning' feature is
 advertised.

 If the device allows arbitrarily named user-controlled
 interfaces, the 'arbitrary-names' feature is advertised.

When a configured user-controlled interface is created by
the system, it is instantiated with the same name in the
/interfaces/interface[name]/state list.
    """
    return self.__name
      
  def _set_name(self, v, load=False):
    """
    Setter method for name, mapped from YANG variable /access_points/access_point/interfaces/interface/state/name (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_name is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_name() directly.

    YANG Description: The name of the interface.

A device MAY restrict the allowed values for this leaf,
possibly depending on the type of the interface.
For system-controlled interfaces, this leaf is the
device-specific name of the interface.  The 'config false'
list interfaces/interface[name]/state contains the currently
existing interfaces on the device.

If a client tries to create configuration for a
system-controlled interface that is not present in the
corresponding state list, the server MAY reject
the request if the implementation does not support
pre-provisioning of interfaces or if the name refers to
an interface that can never exist in the system.  A
NETCONF server MUST reply with an rpc-error with the
error-tag 'invalid-value' in this case.

The IETF model in RFC 7223 provides YANG features for the
following (i.e., pre-provisioning and arbitrary-names),
however they are omitted here:

 If the device supports pre-provisioning of interface
 configuration, the 'pre-provisioning' feature is
 advertised.

 If the device allows arbitrarily named user-controlled
 interfaces, the 'arbitrary-names' feature is advertised.

When a configured user-controlled interface is created by
the system, it is instantiated with the same name in the
/interfaces/interface[name]/state list.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='string', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """name must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='string', is_config=False)""",
        })

    self.__name = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_name(self):
    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='string', is_config=False)


  def _get_type(self):
    """
    Getter method for type, mapped from YANG variable /access_points/access_point/interfaces/interface/state/type (identityref)

    YANG Description: The type of the interface.

When an interface entry is created, a server MAY
initialize the type leaf with a valid value, e.g., if it
is possible to derive the type from the name of the
interface.

If a client tries to set the type of an interface to a
value that can never be used by the system, e.g., if the
type is not supported or if the type does not match the
name of the interface, the server MUST reject the request.
A NETCONF server MUST reply with an rpc-error with the
error-tag 'invalid-value' in this case.
    """
    return self.__type
      
  def _set_type(self, v, load=False):
    """
    Setter method for type, mapped from YANG variable /access_points/access_point/interfaces/interface/state/type (identityref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_type is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_type() directly.

    YANG Description: The type of the interface.

When an interface entry is created, a server MAY
initialize the type leaf with a valid value, e.g., if it
is possible to derive the type from the name of the
interface.

If a client tries to set the type of an interface to a
value that can never be used by the system, e.g., if the
type is not supported or if the type does not match the
name of the interface, the server MUST reject the request.
A NETCONF server MUST reply with an rpc-error with the
error-tag 'invalid-value' in this case.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'iana-interface-type': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iana-interface-type': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'other': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:other': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'regular1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:regular1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdh1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdh1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ddnX25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ddnX25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rfc877x25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rfc877x25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ethernetCsmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ethernetCsmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88023Csmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88023Csmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88024TokenBus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88024TokenBus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025TokenRing': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025TokenRing': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88026Man': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88026Man': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'starLan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:starLan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'proteon10Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:proteon10Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'proteon80Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:proteon80Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hyperchannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hyperchannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fddi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fddi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'e1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:e1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'basicISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:basicISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'primaryISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:primaryISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propPointToPointSerial': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propPointToPointSerial': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ppp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ppp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'softwareLoopback': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:softwareLoopback': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'eon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:eon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ethernet3Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ethernet3Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'nsip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:nsip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'slip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:slip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ultra': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ultra': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds3': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds3': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rs232': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rs232': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'para': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:para': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arcnet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arcnet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arcnetPlus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arcnetPlus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'miox25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:miox25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25ple': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25ple': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88022llc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88022llc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'localTalk': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:localTalk': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'smdsDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:smdsDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayService': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayService': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v35': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v35': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hssi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hssi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hippi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hippi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'modem': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:modem': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aal5': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aal5': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetPath': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetPath': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetVT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetVT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'smdsIcip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:smdsIcip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propMultiplexor': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propMultiplexor': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80212': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80212': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fibreChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fibreChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hippiInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hippiInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayInterconnect': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayInterconnect': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aflane8023': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aflane8023': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aflane8025': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aflane8025': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cctEmul': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cctEmul': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v11': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v11': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v36': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v36': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g703at64k': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g703at64k': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g703at2mb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g703at2mb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'qllc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:qllc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastEtherFX': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastEtherFX': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'channel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:channel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80211': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80211': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ibm370parChan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ibm370parChan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'escon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:escon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dlsw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dlsw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdns': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdns': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rsrb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rsrb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmLogical': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmLogical': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds0': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds0': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds0Bundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds0Bundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bsc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bsc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'async': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:async': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cnr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cnr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025Dtr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025Dtr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'eplrs': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:eplrs': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propCnls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propCnls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hostPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hostPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'termPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:termPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayMPI': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayMPI': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x213': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x213': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'radsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:radsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025CRFPInt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025CRFPInt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'myrinet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:myrinet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEM': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEM': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFXO': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFXO': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFXS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFXS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEncap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEncap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmFuni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmFuni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmIma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmIma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pppMultilinkBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pppMultilinkBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverCdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverCdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverClaw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverClaw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'stackToStack': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:stackToStack': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'virtualIpAddress': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:virtualIpAddress': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025Fiber': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025Fiber': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gigabitEthernet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gigabitEthernet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v37': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v37': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25mlp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25mlp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25huntGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25huntGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'transpHdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:transpHdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'interleave': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:interleave': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'a12MppSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:a12MppSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'coffee': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:coffee': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ces': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ces': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmSubInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmSubInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l2vlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l2vlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l3ipvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l3ipvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l3ipxvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l3ipxvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'digitalPowerline': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:digitalPowerline': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mediaMailOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mediaMailOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dcn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dcn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'msdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:msdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee1394': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee1394': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'if-gsn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:if-gsn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mplsTunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mplsTunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'srp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:srp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverFrameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverFrameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'idsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:idsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'compositeLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:compositeLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ss7SigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ss7SigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propWirelessP2P': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propWirelessP2P': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rfc1483': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rfc1483': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'usb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:usb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee8023adLag': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee8023adLag': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bgppolicyaccounting': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bgppolicyaccounting': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frf16MfrBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frf16MfrBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'h323Gatekeeper': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:h323Gatekeeper': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'h323Proxy': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:h323Proxy': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mfSigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mfSigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'shdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:shdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds1FDL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds1FDL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pos': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pos': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbAsiIn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbAsiIn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbAsiOut': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbAsiOut': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'plc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:plc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'nfas': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:nfas': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tr008': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tr008': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gr303RDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gr303RDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gr303IDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gr303IDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hiperlan2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hiperlan2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propBWAp2Mp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propBWAp2Mp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'digitalWrapperOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:digitalWrapperOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aal2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aal2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'radioMAC': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:radioMAC': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'imt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:imt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mvl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mvl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'reachDSL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:reachDSL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frDlciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frDlciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmVciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmVciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverCable': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverCable': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'infiniband': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:infiniband': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'teLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:teLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'q2931': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:q2931': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'virtualTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:virtualTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sipTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sipTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sipSig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sipSig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstreamChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstreamChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'econet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:econet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pon155': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pon155': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pon622': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pon622': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bridge': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bridge': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'linegroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:linegroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEMFGD': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEMFGD': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFGDEANA': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFGDEANA': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceDID': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceDID': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpegTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpegTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sixToFour': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sixToFour': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gtp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gtp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pdnEtherLoop1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pdnEtherLoop1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pdnEtherLoop2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pdnEtherLoop2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalChannelGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalChannelGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'homepna': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:homepna': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gfp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gfp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ciscoISLvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ciscoISLvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'actelisMetaLOOP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:actelisMetaLOOP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fcipLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fcipLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rpr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rpr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'qam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:qam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lmp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lmp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cblVectaStar': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cblVectaStar': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableMCmtsDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableMCmtsDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'macSecControlledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:macSecControlledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'macSecUncontrolledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:macSecUncontrolledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aviciOpticalEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aviciOpticalEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmbond': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmbond': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFGDOS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFGDOS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mocaVersion1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mocaVersion1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80216WMAN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80216WMAN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl2plus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl2plus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRcsMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRcsMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbTdm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbTdm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRcsTdma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRcsTdma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x86Laps': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x86Laps': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'wwanPP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:wwanPP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'wwanPP2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:wwanPP2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEBS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEBS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ifPwType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ifPwType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ilan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ilan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluELP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluELP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapDot11Profile': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapDot11Profile': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapDot11Bss': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapDot11Bss': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapWtpVirtualRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapWtpVirtualRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bits': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bits': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cableDownstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cableDownstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vmwareVirtualNic': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vmwareVirtualNic': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee802154': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee802154': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOdu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOdu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ifVfiType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ifVfiType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9981': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9981': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9982': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9982': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9983': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9983': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponLogicalLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponLogicalLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluGponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluGponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluGponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluGponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vmwareNicTeam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vmwareNicTeam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsOfdmDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsOfdmDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsOfdmaUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsOfdmaUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gfast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gfast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdci': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdci': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'xboxWireless': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:xboxWireless': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d1FwdOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d1FwdOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d1RetOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d1RetOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d2DsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d2DsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d2UsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d2UsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableNdf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableNdf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableNdr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableNdr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ptm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ptm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ghn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ghn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtsi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtsi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtuc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtuc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOduc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOduc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtsig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtsig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'microwaveCarrierTermination': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:microwaveCarrierTermination': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'microwaveRadioLinkTerminal': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:microwaveRadioLinkTerminal': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}},), is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='identityref', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """type must be of a type compatible with identityref""",
          'defined-type': "openconfig-ap-interfaces:identityref",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'iana-interface-type': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iana-interface-type': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'other': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:other': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'regular1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:regular1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdh1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdh1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ddnX25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ddnX25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rfc877x25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rfc877x25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ethernetCsmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ethernetCsmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88023Csmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88023Csmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88024TokenBus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88024TokenBus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025TokenRing': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025TokenRing': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88026Man': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88026Man': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'starLan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:starLan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'proteon10Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:proteon10Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'proteon80Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:proteon80Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hyperchannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hyperchannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fddi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fddi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'e1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:e1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'basicISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:basicISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'primaryISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:primaryISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propPointToPointSerial': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propPointToPointSerial': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ppp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ppp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'softwareLoopback': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:softwareLoopback': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'eon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:eon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ethernet3Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ethernet3Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'nsip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:nsip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'slip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:slip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ultra': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ultra': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds3': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds3': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rs232': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rs232': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'para': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:para': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arcnet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arcnet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arcnetPlus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arcnetPlus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'miox25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:miox25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25ple': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25ple': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88022llc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88022llc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'localTalk': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:localTalk': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'smdsDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:smdsDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayService': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayService': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v35': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v35': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hssi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hssi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hippi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hippi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'modem': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:modem': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aal5': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aal5': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetPath': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetPath': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetVT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetVT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'smdsIcip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:smdsIcip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propMultiplexor': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propMultiplexor': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80212': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80212': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fibreChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fibreChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hippiInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hippiInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayInterconnect': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayInterconnect': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aflane8023': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aflane8023': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aflane8025': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aflane8025': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cctEmul': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cctEmul': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v11': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v11': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v36': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v36': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g703at64k': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g703at64k': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g703at2mb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g703at2mb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'qllc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:qllc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastEtherFX': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastEtherFX': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'channel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:channel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80211': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80211': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ibm370parChan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ibm370parChan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'escon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:escon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dlsw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dlsw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdns': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdns': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rsrb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rsrb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmLogical': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmLogical': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds0': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds0': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds0Bundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds0Bundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bsc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bsc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'async': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:async': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cnr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cnr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025Dtr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025Dtr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'eplrs': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:eplrs': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propCnls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propCnls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hostPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hostPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'termPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:termPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayMPI': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayMPI': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x213': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x213': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'radsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:radsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025CRFPInt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025CRFPInt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'myrinet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:myrinet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEM': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEM': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFXO': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFXO': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFXS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFXS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEncap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEncap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmFuni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmFuni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmIma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmIma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pppMultilinkBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pppMultilinkBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverCdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverCdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverClaw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverClaw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'stackToStack': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:stackToStack': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'virtualIpAddress': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:virtualIpAddress': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025Fiber': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025Fiber': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gigabitEthernet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gigabitEthernet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v37': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v37': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25mlp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25mlp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25huntGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25huntGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'transpHdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:transpHdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'interleave': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:interleave': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'a12MppSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:a12MppSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'coffee': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:coffee': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ces': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ces': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmSubInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmSubInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l2vlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l2vlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l3ipvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l3ipvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l3ipxvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l3ipxvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'digitalPowerline': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:digitalPowerline': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mediaMailOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mediaMailOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dcn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dcn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'msdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:msdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee1394': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee1394': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'if-gsn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:if-gsn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mplsTunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mplsTunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'srp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:srp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverFrameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverFrameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'idsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:idsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'compositeLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:compositeLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ss7SigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ss7SigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propWirelessP2P': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propWirelessP2P': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rfc1483': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rfc1483': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'usb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:usb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee8023adLag': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee8023adLag': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bgppolicyaccounting': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bgppolicyaccounting': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frf16MfrBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frf16MfrBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'h323Gatekeeper': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:h323Gatekeeper': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'h323Proxy': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:h323Proxy': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mfSigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mfSigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'shdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:shdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds1FDL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds1FDL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pos': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pos': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbAsiIn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbAsiIn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbAsiOut': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbAsiOut': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'plc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:plc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'nfas': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:nfas': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tr008': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tr008': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gr303RDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gr303RDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gr303IDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gr303IDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hiperlan2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hiperlan2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propBWAp2Mp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propBWAp2Mp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'digitalWrapperOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:digitalWrapperOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aal2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aal2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'radioMAC': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:radioMAC': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'imt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:imt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mvl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mvl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'reachDSL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:reachDSL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frDlciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frDlciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmVciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmVciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverCable': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverCable': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'infiniband': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:infiniband': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'teLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:teLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'q2931': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:q2931': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'virtualTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:virtualTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sipTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sipTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sipSig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sipSig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstreamChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstreamChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'econet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:econet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pon155': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pon155': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pon622': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pon622': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bridge': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bridge': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'linegroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:linegroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEMFGD': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEMFGD': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFGDEANA': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFGDEANA': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceDID': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceDID': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpegTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpegTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sixToFour': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sixToFour': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gtp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gtp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pdnEtherLoop1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pdnEtherLoop1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pdnEtherLoop2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pdnEtherLoop2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalChannelGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalChannelGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'homepna': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:homepna': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gfp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gfp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ciscoISLvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ciscoISLvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'actelisMetaLOOP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:actelisMetaLOOP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fcipLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fcipLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rpr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rpr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'qam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:qam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lmp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lmp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cblVectaStar': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cblVectaStar': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableMCmtsDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableMCmtsDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'macSecControlledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:macSecControlledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'macSecUncontrolledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:macSecUncontrolledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aviciOpticalEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aviciOpticalEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmbond': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmbond': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFGDOS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFGDOS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mocaVersion1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mocaVersion1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80216WMAN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80216WMAN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl2plus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl2plus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRcsMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRcsMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbTdm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbTdm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRcsTdma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRcsTdma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x86Laps': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x86Laps': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'wwanPP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:wwanPP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'wwanPP2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:wwanPP2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEBS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEBS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ifPwType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ifPwType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ilan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ilan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluELP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluELP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapDot11Profile': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapDot11Profile': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapDot11Bss': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapDot11Bss': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapWtpVirtualRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapWtpVirtualRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bits': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bits': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cableDownstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cableDownstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vmwareVirtualNic': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vmwareVirtualNic': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee802154': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee802154': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOdu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOdu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ifVfiType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ifVfiType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9981': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9981': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9982': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9982': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9983': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9983': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponLogicalLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponLogicalLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluGponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluGponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluGponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluGponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vmwareNicTeam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vmwareNicTeam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsOfdmDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsOfdmDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsOfdmaUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsOfdmaUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gfast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gfast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdci': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdci': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'xboxWireless': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:xboxWireless': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d1FwdOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d1FwdOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d1RetOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d1RetOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d2DsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d2DsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d2UsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d2UsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableNdf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableNdf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableNdr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableNdr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ptm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ptm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ghn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ghn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtsi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtsi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtuc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtuc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOduc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOduc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtsig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtsig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'microwaveCarrierTermination': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:microwaveCarrierTermination': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'microwaveRadioLinkTerminal': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:microwaveRadioLinkTerminal': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}},), is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='identityref', is_config=False)""",
        })

    self.__type = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_type(self):
    self.__type = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'iana-interface-type': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iana-interface-type': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'other': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:other': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'regular1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:regular1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdh1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdh1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ddnX25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ddnX25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rfc877x25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rfc877x25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ethernetCsmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ethernetCsmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88023Csmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88023Csmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88024TokenBus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88024TokenBus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025TokenRing': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025TokenRing': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88026Man': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88026Man': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'starLan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:starLan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'proteon10Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:proteon10Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'proteon80Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:proteon80Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hyperchannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hyperchannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fddi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fddi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'e1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:e1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'basicISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:basicISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'primaryISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:primaryISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propPointToPointSerial': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propPointToPointSerial': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ppp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ppp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'softwareLoopback': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:softwareLoopback': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'eon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:eon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ethernet3Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ethernet3Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'nsip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:nsip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'slip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:slip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ultra': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ultra': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds3': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds3': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rs232': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rs232': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'para': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:para': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arcnet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arcnet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arcnetPlus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arcnetPlus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'miox25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:miox25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25ple': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25ple': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88022llc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88022llc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'localTalk': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:localTalk': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'smdsDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:smdsDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayService': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayService': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v35': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v35': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hssi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hssi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hippi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hippi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'modem': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:modem': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aal5': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aal5': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetPath': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetPath': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetVT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetVT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'smdsIcip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:smdsIcip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propMultiplexor': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propMultiplexor': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80212': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80212': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fibreChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fibreChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hippiInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hippiInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayInterconnect': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayInterconnect': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aflane8023': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aflane8023': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aflane8025': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aflane8025': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cctEmul': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cctEmul': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v11': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v11': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v36': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v36': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g703at64k': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g703at64k': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g703at2mb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g703at2mb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'qllc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:qllc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastEtherFX': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastEtherFX': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'channel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:channel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80211': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80211': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ibm370parChan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ibm370parChan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'escon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:escon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dlsw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dlsw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdns': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdns': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rsrb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rsrb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmLogical': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmLogical': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds0': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds0': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds0Bundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds0Bundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bsc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bsc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'async': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:async': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cnr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cnr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025Dtr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025Dtr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'eplrs': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:eplrs': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propCnls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propCnls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hostPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hostPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'termPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:termPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayMPI': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayMPI': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x213': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x213': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'radsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:radsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025CRFPInt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025CRFPInt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'myrinet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:myrinet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEM': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEM': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFXO': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFXO': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFXS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFXS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEncap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEncap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmFuni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmFuni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmIma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmIma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pppMultilinkBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pppMultilinkBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverCdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverCdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverClaw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverClaw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'stackToStack': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:stackToStack': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'virtualIpAddress': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:virtualIpAddress': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025Fiber': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025Fiber': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gigabitEthernet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gigabitEthernet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v37': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v37': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25mlp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25mlp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25huntGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25huntGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'transpHdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:transpHdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'interleave': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:interleave': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'a12MppSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:a12MppSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'coffee': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:coffee': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ces': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ces': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmSubInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmSubInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l2vlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l2vlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l3ipvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l3ipvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l3ipxvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l3ipxvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'digitalPowerline': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:digitalPowerline': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mediaMailOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mediaMailOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dcn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dcn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'msdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:msdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee1394': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee1394': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'if-gsn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:if-gsn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mplsTunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mplsTunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'srp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:srp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverFrameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverFrameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'idsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:idsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'compositeLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:compositeLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ss7SigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ss7SigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propWirelessP2P': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propWirelessP2P': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rfc1483': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rfc1483': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'usb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:usb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee8023adLag': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee8023adLag': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bgppolicyaccounting': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bgppolicyaccounting': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frf16MfrBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frf16MfrBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'h323Gatekeeper': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:h323Gatekeeper': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'h323Proxy': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:h323Proxy': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mfSigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mfSigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'shdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:shdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds1FDL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds1FDL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pos': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pos': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbAsiIn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbAsiIn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbAsiOut': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbAsiOut': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'plc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:plc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'nfas': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:nfas': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tr008': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tr008': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gr303RDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gr303RDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gr303IDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gr303IDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hiperlan2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hiperlan2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propBWAp2Mp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propBWAp2Mp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'digitalWrapperOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:digitalWrapperOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aal2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aal2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'radioMAC': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:radioMAC': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'imt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:imt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mvl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mvl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'reachDSL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:reachDSL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frDlciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frDlciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmVciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmVciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverCable': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverCable': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'infiniband': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:infiniband': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'teLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:teLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'q2931': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:q2931': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'virtualTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:virtualTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sipTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sipTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sipSig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sipSig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstreamChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstreamChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'econet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:econet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pon155': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pon155': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pon622': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pon622': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bridge': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bridge': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'linegroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:linegroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEMFGD': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEMFGD': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFGDEANA': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFGDEANA': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceDID': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceDID': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpegTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpegTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sixToFour': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sixToFour': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gtp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gtp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pdnEtherLoop1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pdnEtherLoop1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pdnEtherLoop2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pdnEtherLoop2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalChannelGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalChannelGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'homepna': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:homepna': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gfp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gfp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ciscoISLvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ciscoISLvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'actelisMetaLOOP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:actelisMetaLOOP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fcipLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fcipLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rpr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rpr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'qam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:qam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lmp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lmp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cblVectaStar': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cblVectaStar': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableMCmtsDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableMCmtsDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'macSecControlledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:macSecControlledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'macSecUncontrolledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:macSecUncontrolledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aviciOpticalEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aviciOpticalEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmbond': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmbond': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFGDOS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFGDOS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mocaVersion1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mocaVersion1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80216WMAN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80216WMAN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl2plus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl2plus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRcsMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRcsMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbTdm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbTdm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRcsTdma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRcsTdma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x86Laps': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x86Laps': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'wwanPP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:wwanPP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'wwanPP2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:wwanPP2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEBS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEBS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ifPwType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ifPwType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ilan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ilan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluELP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluELP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapDot11Profile': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapDot11Profile': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapDot11Bss': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapDot11Bss': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapWtpVirtualRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapWtpVirtualRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bits': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bits': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cableDownstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cableDownstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vmwareVirtualNic': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vmwareVirtualNic': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee802154': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee802154': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOdu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOdu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ifVfiType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ifVfiType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9981': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9981': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9982': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9982': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9983': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9983': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponLogicalLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponLogicalLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluGponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluGponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluGponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluGponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vmwareNicTeam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vmwareNicTeam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsOfdmDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsOfdmDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsOfdmaUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsOfdmaUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gfast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gfast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdci': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdci': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'xboxWireless': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:xboxWireless': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d1FwdOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d1FwdOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d1RetOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d1RetOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d2DsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d2DsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d2UsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d2UsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableNdf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableNdf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableNdr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableNdr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ptm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ptm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ghn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ghn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtsi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtsi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtuc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtuc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOduc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOduc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtsig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtsig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'microwaveCarrierTermination': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:microwaveCarrierTermination': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'microwaveRadioLinkTerminal': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:microwaveRadioLinkTerminal': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}},), is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='identityref', is_config=False)


  def _get_mtu(self):
    """
    Getter method for mtu, mapped from YANG variable /access_points/access_point/interfaces/interface/state/mtu (uint16)

    YANG Description: Set the max transmission unit size in octets
for the physical interface.  If this is not set, the mtu is
set to the operational default -- e.g., 1514 bytes on an
Ethernet interface.
    """
    return self.__mtu
      
  def _set_mtu(self, v, load=False):
    """
    Setter method for mtu, mapped from YANG variable /access_points/access_point/interfaces/interface/state/mtu (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mtu is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mtu() directly.

    YANG Description: Set the max transmission unit size in octets
for the physical interface.  If this is not set, the mtu is
set to the operational default -- e.g., 1514 bytes on an
Ethernet interface.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="mtu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint16', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mtu must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="mtu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint16', is_config=False)""",
        })

    self.__mtu = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mtu(self):
    self.__mtu = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="mtu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint16', is_config=False)


  def _get_loopback_mode(self):
    """
    Getter method for loopback_mode, mapped from YANG variable /access_points/access_point/interfaces/interface/state/loopback_mode (oc-opt-types:loopback-mode-type)

    YANG Description: Sets the loopback type on the interface. Setting the
mode to something besides NONE activates the loopback in
the specified mode.
    """
    return self.__loopback_mode
      
  def _set_loopback_mode(self, v, load=False):
    """
    Setter method for loopback_mode, mapped from YANG variable /access_points/access_point/interfaces/interface/state/loopback_mode (oc-opt-types:loopback-mode-type)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_loopback_mode is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_loopback_mode() directly.

    YANG Description: Sets the loopback type on the interface. Setting the
mode to something besides NONE activates the loopback in
the specified mode.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'NONE': {}, 'FACILITY': {}, 'TERMINAL': {}},), default=six.text_type("NONE"), is_leaf=True, yang_name="loopback-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-opt-types:loopback-mode-type', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """loopback_mode must be of a type compatible with oc-opt-types:loopback-mode-type""",
          'defined-type': "oc-opt-types:loopback-mode-type",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'NONE': {}, 'FACILITY': {}, 'TERMINAL': {}},), default=six.text_type("NONE"), is_leaf=True, yang_name="loopback-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-opt-types:loopback-mode-type', is_config=False)""",
        })

    self.__loopback_mode = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_loopback_mode(self):
    self.__loopback_mode = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'NONE': {}, 'FACILITY': {}, 'TERMINAL': {}},), default=six.text_type("NONE"), is_leaf=True, yang_name="loopback-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-opt-types:loopback-mode-type', is_config=False)


  def _get_description(self):
    """
    Getter method for description, mapped from YANG variable /access_points/access_point/interfaces/interface/state/description (string)

    YANG Description: A textual description of the interface.

A server implementation MAY map this leaf to the ifAlias
MIB object.  Such an implementation needs to use some
mechanism to handle the differences in size and characters
allowed between this leaf and ifAlias.  The definition of
such a mechanism is outside the scope of this document.

Since ifAlias is defined to be stored in non-volatile
storage, the MIB implementation MUST map ifAlias to the
value of 'description' in the persistently stored
datastore.

Specifically, if the device supports ':startup', when
ifAlias is read the device MUST return the value of
'description' in the 'startup' datastore, and when it is
written, it MUST be written to the 'running' and 'startup'
datastores.  Note that it is up to the implementation to

decide whether to modify this single leaf in 'startup' or
perform an implicit copy-config from 'running' to
'startup'.

If the device does not support ':startup', ifAlias MUST
be mapped to the 'description' leaf in the 'running'
datastore.
    """
    return self.__description
      
  def _set_description(self, v, load=False):
    """
    Setter method for description, mapped from YANG variable /access_points/access_point/interfaces/interface/state/description (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_description is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_description() directly.

    YANG Description: A textual description of the interface.

A server implementation MAY map this leaf to the ifAlias
MIB object.  Such an implementation needs to use some
mechanism to handle the differences in size and characters
allowed between this leaf and ifAlias.  The definition of
such a mechanism is outside the scope of this document.

Since ifAlias is defined to be stored in non-volatile
storage, the MIB implementation MUST map ifAlias to the
value of 'description' in the persistently stored
datastore.

Specifically, if the device supports ':startup', when
ifAlias is read the device MUST return the value of
'description' in the 'startup' datastore, and when it is
written, it MUST be written to the 'running' and 'startup'
datastores.  Note that it is up to the implementation to

decide whether to modify this single leaf in 'startup' or
perform an implicit copy-config from 'running' to
'startup'.

If the device does not support ':startup', ifAlias MUST
be mapped to the 'description' leaf in the 'running'
datastore.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="description", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='string', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """description must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="description", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='string', is_config=False)""",
        })

    self.__description = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_description(self):
    self.__description = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="description", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='string', is_config=False)


  def _get_enabled(self):
    """
    Getter method for enabled, mapped from YANG variable /access_points/access_point/interfaces/interface/state/enabled (boolean)

    YANG Description: This leaf contains the configured, desired state of the
interface.

Systems that implement the IF-MIB use the value of this
leaf in the 'running' datastore to set
IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry
has been initialized, as described in RFC 2863.

Changes in this leaf in the 'running' datastore are
reflected in ifAdminStatus, but if ifAdminStatus is
changed over SNMP, this leaf is not affected.
    """
    return self.__enabled
      
  def _set_enabled(self, v, load=False):
    """
    Setter method for enabled, mapped from YANG variable /access_points/access_point/interfaces/interface/state/enabled (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_enabled is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_enabled() directly.

    YANG Description: This leaf contains the configured, desired state of the
interface.

Systems that implement the IF-MIB use the value of this
leaf in the 'running' datastore to set
IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry
has been initialized, as described in RFC 2863.

Changes in this leaf in the 'running' datastore are
reflected in ifAdminStatus, but if ifAdminStatus is
changed over SNMP, this leaf is not affected.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """enabled must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)""",
        })

    self.__enabled = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_enabled(self):
    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)


  def _get_ifindex(self):
    """
    Getter method for ifindex, mapped from YANG variable /access_points/access_point/interfaces/interface/state/ifindex (uint32)

    YANG Description: System assigned number for each interface.  Corresponds to
ifIndex object in SNMP Interface MIB
    """
    return self.__ifindex
      
  def _set_ifindex(self, v, load=False):
    """
    Setter method for ifindex, mapped from YANG variable /access_points/access_point/interfaces/interface/state/ifindex (uint32)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ifindex is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ifindex() directly.

    YANG Description: System assigned number for each interface.  Corresponds to
ifIndex object in SNMP Interface MIB
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="ifindex", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ifindex must be of a type compatible with uint32""",
          'defined-type': "uint32",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="ifindex", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=False)""",
        })

    self.__ifindex = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ifindex(self):
    self.__ifindex = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="ifindex", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=False)


  def _get_admin_status(self):
    """
    Getter method for admin_status, mapped from YANG variable /access_points/access_point/interfaces/interface/state/admin_status (enumeration)

    YANG Description: The desired state of the interface.  In RFC 7223 this leaf
has the same read semantics as ifAdminStatus.  Here, it
reflects the administrative state as set by enabling or
disabling the interface.
    """
    return self.__admin_status
      
  def _set_admin_status(self, v, load=False):
    """
    Setter method for admin_status, mapped from YANG variable /access_points/access_point/interfaces/interface/state/admin_status (enumeration)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_admin_status is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_admin_status() directly.

    YANG Description: The desired state of the interface.  In RFC 7223 this leaf
has the same read semantics as ifAdminStatus.  Here, it
reflects the administrative state as set by enabling or
disabling the interface.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'UP': {}, 'DOWN': {}, 'TESTING': {}},), is_leaf=True, yang_name="admin-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """admin_status must be of a type compatible with enumeration""",
          'defined-type': "openconfig-ap-interfaces:enumeration",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'UP': {}, 'DOWN': {}, 'TESTING': {}},), is_leaf=True, yang_name="admin-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', is_config=False)""",
        })

    self.__admin_status = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_admin_status(self):
    self.__admin_status = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'UP': {}, 'DOWN': {}, 'TESTING': {}},), is_leaf=True, yang_name="admin-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', is_config=False)


  def _get_oper_status(self):
    """
    Getter method for oper_status, mapped from YANG variable /access_points/access_point/interfaces/interface/state/oper_status (enumeration)

    YANG Description: The current operational state of the interface.

This leaf has the same semantics as ifOperStatus.
    """
    return self.__oper_status
      
  def _set_oper_status(self, v, load=False):
    """
    Setter method for oper_status, mapped from YANG variable /access_points/access_point/interfaces/interface/state/oper_status (enumeration)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_oper_status is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_oper_status() directly.

    YANG Description: The current operational state of the interface.

This leaf has the same semantics as ifOperStatus.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'UP': {'value': 1}, 'DOWN': {'value': 2}, 'TESTING': {'value': 3}, 'UNKNOWN': {'value': 4}, 'DORMANT': {'value': 5}, 'NOT_PRESENT': {'value': 6}, 'LOWER_LAYER_DOWN': {'value': 7}},), is_leaf=True, yang_name="oper-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """oper_status must be of a type compatible with enumeration""",
          'defined-type': "openconfig-ap-interfaces:enumeration",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'UP': {'value': 1}, 'DOWN': {'value': 2}, 'TESTING': {'value': 3}, 'UNKNOWN': {'value': 4}, 'DORMANT': {'value': 5}, 'NOT_PRESENT': {'value': 6}, 'LOWER_LAYER_DOWN': {'value': 7}},), is_leaf=True, yang_name="oper-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', is_config=False)""",
        })

    self.__oper_status = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_oper_status(self):
    self.__oper_status = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'UP': {'value': 1}, 'DOWN': {'value': 2}, 'TESTING': {'value': 3}, 'UNKNOWN': {'value': 4}, 'DORMANT': {'value': 5}, 'NOT_PRESENT': {'value': 6}, 'LOWER_LAYER_DOWN': {'value': 7}},), is_leaf=True, yang_name="oper-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', is_config=False)


  def _get_last_change(self):
    """
    Getter method for last_change, mapped from YANG variable /access_points/access_point/interfaces/interface/state/last_change (oc-types:timeticks64)

    YANG Description: This timestamp indicates the absolute time of the last
state change of the interface (e.g., up-to-down transition).
This is different than the SNMP ifLastChange object in the
standard interface MIB in that it is not relative to the
system boot time (i.e,. sysUpTime).

The value is the timestamp in nanoseconds relative to
the Unix Epoch (Jan 1, 1970 00:00:00 UTC).
    """
    return self.__last_change
      
  def _set_last_change(self, v, load=False):
    """
    Setter method for last_change, mapped from YANG variable /access_points/access_point/interfaces/interface/state/last_change (oc-types:timeticks64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_last_change is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_last_change() directly.

    YANG Description: This timestamp indicates the absolute time of the last
state change of the interface (e.g., up-to-down transition).
This is different than the SNMP ifLastChange object in the
standard interface MIB in that it is not relative to the
system boot time (i.e,. sysUpTime).

The value is the timestamp in nanoseconds relative to
the Unix Epoch (Jan 1, 1970 00:00:00 UTC).
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-change", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-types:timeticks64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """last_change must be of a type compatible with oc-types:timeticks64""",
          'defined-type': "oc-types:timeticks64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-change", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-types:timeticks64', is_config=False)""",
        })

    self.__last_change = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_last_change(self):
    self.__last_change = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-change", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-types:timeticks64', is_config=False)


  def _get_logical(self):
    """
    Getter method for logical, mapped from YANG variable /access_points/access_point/interfaces/interface/state/logical (boolean)

    YANG Description: When set to true, the interface is a logical interface
which does not have an associated physical port or
channel on the system.
    """
    return self.__logical
      
  def _set_logical(self, v, load=False):
    """
    Setter method for logical, mapped from YANG variable /access_points/access_point/interfaces/interface/state/logical (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_logical is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_logical() directly.

    YANG Description: When set to true, the interface is a logical interface
which does not have an associated physical port or
channel on the system.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="logical", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """logical must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="logical", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)""",
        })

    self.__logical = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_logical(self):
    self.__logical = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="logical", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)


  def _get_management(self):
    """
    Getter method for management, mapped from YANG variable /access_points/access_point/interfaces/interface/state/management (boolean)

    YANG Description: When set to true, the interface is a dedicated
management interface that is not connected to dataplane
interfaces.  It may be used to connect the system to an
out-of-band management network, for example.
    """
    return self.__management
      
  def _set_management(self, v, load=False):
    """
    Setter method for management, mapped from YANG variable /access_points/access_point/interfaces/interface/state/management (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_management is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_management() directly.

    YANG Description: When set to true, the interface is a dedicated
management interface that is not connected to dataplane
interfaces.  It may be used to connect the system to an
out-of-band management network, for example.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="management", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """management must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="management", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)""",
        })

    self.__management = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_management(self):
    self.__management = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="management", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)


  def _get_cpu(self):
    """
    Getter method for cpu, mapped from YANG variable /access_points/access_point/interfaces/interface/state/cpu (boolean)

    YANG Description: When set to true, the interface is for traffic
that is handled by the system CPU, sometimes also called the
control plane interface.  On systems that represent the CPU
interface as an Ethernet interface, for example, this leaf
should be used to distinguish the CPU interface from dataplane
interfaces.
    """
    return self.__cpu
      
  def _set_cpu(self, v, load=False):
    """
    Setter method for cpu, mapped from YANG variable /access_points/access_point/interfaces/interface/state/cpu (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_cpu is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_cpu() directly.

    YANG Description: When set to true, the interface is for traffic
that is handled by the system CPU, sometimes also called the
control plane interface.  On systems that represent the CPU
interface as an Ethernet interface, for example, this leaf
should be used to distinguish the CPU interface from dataplane
interfaces.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="cpu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """cpu must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="cpu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)""",
        })

    self.__cpu = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_cpu(self):
    self.__cpu = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="cpu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)


  def _get_counters(self):
    """
    Getter method for counters, mapped from YANG variable /access_points/access_point/interfaces/interface/state/counters (container)

    YANG Description: A collection of interface-related statistics objects.
    """
    return self.__counters
      
  def _set_counters(self, v, load=False):
    """
    Setter method for counters, mapped from YANG variable /access_points/access_point/interfaces/interface/state/counters (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_counters is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_counters() directly.

    YANG Description: A collection of interface-related statistics objects.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_counters_openconfig_access_points__access_points_access_point_interfaces_interface_state_counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """counters must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_counters_openconfig_access_points__access_points_access_point_interfaces_interface_state_counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=False)""",
        })

    self.__counters = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_counters(self):
    self.__counters = YANGDynClass(base=yc_counters_openconfig_access_points__access_points_access_point_interfaces_interface_state_counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=False)

  name = __builtin__.property(_get_name)
  type = __builtin__.property(_get_type)
  mtu = __builtin__.property(_get_mtu)
  loopback_mode = __builtin__.property(_get_loopback_mode)
  description = __builtin__.property(_get_description)
  enabled = __builtin__.property(_get_enabled)
  ifindex = __builtin__.property(_get_ifindex)
  admin_status = __builtin__.property(_get_admin_status)
  oper_status = __builtin__.property(_get_oper_status)
  last_change = __builtin__.property(_get_last_change)
  logical = __builtin__.property(_get_logical)
  management = __builtin__.property(_get_management)
  cpu = __builtin__.property(_get_cpu)
  counters = __builtin__.property(_get_counters)


  _pyangbind_elements = OrderedDict([('name', name), ('type', type), ('mtu', mtu), ('loopback_mode', loopback_mode), ('description', description), ('enabled', enabled), ('ifindex', ifindex), ('admin_status', admin_status), ('oper_status', oper_status), ('last_change', last_change), ('logical', logical), ('management', management), ('cpu', cpu), ('counters', counters), ])


class yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/ethernet/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Configuration data for ethernet interfaces
  """
  __slots__ = ('_path_helper', '_extmethods', '__mac_address','__auto_negotiate','__standalone_link_training','__duplex_mode','__port_speed','__enable_flow_control','__fec_mode',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__mac_address = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="mac-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:mac-address', is_config=True)
    self.__auto_negotiate = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="auto-negotiate", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)
    self.__standalone_link_training = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="standalone-link-training", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)
    self.__duplex_mode = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'FULL': {}, 'HALF': {}},), is_leaf=True, yang_name="duplex-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', is_config=True)
    self.__port_speed = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="port-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='identityref', is_config=True)
    self.__enable_flow_control = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enable-flow-control", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)
    self.__fec_mode = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'FEC_FC': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_FC': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS528': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS528': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS544': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS544': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS544_2X_INTERLEAVE': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS544_2X_INTERLEAVE': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_DISABLED': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_DISABLED': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="fec-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='identityref', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'ethernet', 'config']

  def _get_mac_address(self):
    """
    Getter method for mac_address, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/config/mac_address (oc-yang:mac-address)

    YANG Description: Assigns a MAC address to the Ethernet interface.  If not
specified, the corresponding operational state leaf is
expected to show the system-assigned MAC address.
    """
    return self.__mac_address
      
  def _set_mac_address(self, v, load=False):
    """
    Setter method for mac_address, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/config/mac_address (oc-yang:mac-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mac_address is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mac_address() directly.

    YANG Description: Assigns a MAC address to the Ethernet interface.  If not
specified, the corresponding operational state leaf is
expected to show the system-assigned MAC address.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="mac-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:mac-address', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mac_address must be of a type compatible with oc-yang:mac-address""",
          'defined-type': "oc-yang:mac-address",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="mac-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:mac-address', is_config=True)""",
        })

    self.__mac_address = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mac_address(self):
    self.__mac_address = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="mac-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:mac-address', is_config=True)


  def _get_auto_negotiate(self):
    """
    Getter method for auto_negotiate, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/config/auto_negotiate (boolean)

    YANG Description: Set to TRUE to request the interface to auto-negotiate
transmission parameters with its peer interface.  When
set to FALSE, the transmission parameters are specified
manually.
    """
    return self.__auto_negotiate
      
  def _set_auto_negotiate(self, v, load=False):
    """
    Setter method for auto_negotiate, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/config/auto_negotiate (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_auto_negotiate is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_auto_negotiate() directly.

    YANG Description: Set to TRUE to request the interface to auto-negotiate
transmission parameters with its peer interface.  When
set to FALSE, the transmission parameters are specified
manually.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="auto-negotiate", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """auto_negotiate must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="auto-negotiate", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)""",
        })

    self.__auto_negotiate = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_auto_negotiate(self):
    self.__auto_negotiate = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="auto-negotiate", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)


  def _get_standalone_link_training(self):
    """
    Getter method for standalone_link_training, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/config/standalone_link_training (boolean)

    YANG Description: Link training is automatic tuning of the SerDes transmit and
receive parameters to ensure an optimal connection over copper
links. It is normally run as part of the auto negotiation
sequence as specified in IEEE 802.3 Clause 73.

Standalone link training is used when full auto negotiation is
not desired on an Ethernet link but link training is needed.
It is configured by setting the standalone-link-training leaf
to TRUE and augo-negotiate leaf to FALSE.

Note: If auto-negotiate is true, then the value of standalone
link training leaf will be ignored.
    """
    return self.__standalone_link_training
      
  def _set_standalone_link_training(self, v, load=False):
    """
    Setter method for standalone_link_training, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/config/standalone_link_training (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_standalone_link_training is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_standalone_link_training() directly.

    YANG Description: Link training is automatic tuning of the SerDes transmit and
receive parameters to ensure an optimal connection over copper
links. It is normally run as part of the auto negotiation
sequence as specified in IEEE 802.3 Clause 73.

Standalone link training is used when full auto negotiation is
not desired on an Ethernet link but link training is needed.
It is configured by setting the standalone-link-training leaf
to TRUE and augo-negotiate leaf to FALSE.

Note: If auto-negotiate is true, then the value of standalone
link training leaf will be ignored.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="standalone-link-training", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """standalone_link_training must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="standalone-link-training", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)""",
        })

    self.__standalone_link_training = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_standalone_link_training(self):
    self.__standalone_link_training = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="standalone-link-training", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)


  def _get_duplex_mode(self):
    """
    Getter method for duplex_mode, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/config/duplex_mode (enumeration)

    YANG Description: When auto-negotiate is TRUE, this optionally sets the
duplex mode that will be advertised to the peer.  If
unspecified, the interface should negotiate the duplex mode
directly (typically full-duplex).  When auto-negotiate is
FALSE, this sets the duplex mode on the interface directly.
    """
    return self.__duplex_mode
      
  def _set_duplex_mode(self, v, load=False):
    """
    Setter method for duplex_mode, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/config/duplex_mode (enumeration)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_duplex_mode is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_duplex_mode() directly.

    YANG Description: When auto-negotiate is TRUE, this optionally sets the
duplex mode that will be advertised to the peer.  If
unspecified, the interface should negotiate the duplex mode
directly (typically full-duplex).  When auto-negotiate is
FALSE, this sets the duplex mode on the interface directly.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'FULL': {}, 'HALF': {}},), is_leaf=True, yang_name="duplex-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """duplex_mode must be of a type compatible with enumeration""",
          'defined-type': "openconfig-ap-interfaces:enumeration",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'FULL': {}, 'HALF': {}},), is_leaf=True, yang_name="duplex-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', is_config=True)""",
        })

    self.__duplex_mode = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_duplex_mode(self):
    self.__duplex_mode = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'FULL': {}, 'HALF': {}},), is_leaf=True, yang_name="duplex-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', is_config=True)


  def _get_port_speed(self):
    """
    Getter method for port_speed, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/config/port_speed (identityref)

    YANG Description: When auto-negotiate is TRUE, this optionally sets the
port-speed mode that will be advertised to the peer for
negotiation.  If unspecified, it is expected that the
interface will select the highest speed available based on
negotiation.  When auto-negotiate is set to FALSE, sets the
link speed to a fixed value -- supported values are defined
by ETHERNET_SPEED identities
    """
    return self.__port_speed
      
  def _set_port_speed(self, v, load=False):
    """
    Setter method for port_speed, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/config/port_speed (identityref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_port_speed is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_port_speed() directly.

    YANG Description: When auto-negotiate is TRUE, this optionally sets the
port-speed mode that will be advertised to the peer for
negotiation.  If unspecified, it is expected that the
interface will select the highest speed available based on
negotiation.  When auto-negotiate is set to FALSE, sets the
link speed to a fixed value -- supported values are defined
by ETHERNET_SPEED identities
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="port-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='identityref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """port_speed must be of a type compatible with identityref""",
          'defined-type': "openconfig-ap-interfaces:identityref",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="port-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='identityref', is_config=True)""",
        })

    self.__port_speed = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_port_speed(self):
    self.__port_speed = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="port-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='identityref', is_config=True)


  def _get_enable_flow_control(self):
    """
    Getter method for enable_flow_control, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/config/enable_flow_control (boolean)

    YANG Description: Enable or disable flow control for this interface.
Ethernet flow control is a mechanism by which a receiver
may send PAUSE frames to a sender to stop transmission for
a specified time.

This setting should override auto-negotiated flow control
settings.  If left unspecified, and auto-negotiate is TRUE,
flow control mode is negotiated with the peer interface.
    """
    return self.__enable_flow_control
      
  def _set_enable_flow_control(self, v, load=False):
    """
    Setter method for enable_flow_control, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/config/enable_flow_control (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_enable_flow_control is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_enable_flow_control() directly.

    YANG Description: Enable or disable flow control for this interface.
Ethernet flow control is a mechanism by which a receiver
may send PAUSE frames to a sender to stop transmission for
a specified time.

This setting should override auto-negotiated flow control
settings.  If left unspecified, and auto-negotiate is TRUE,
flow control mode is negotiated with the peer interface.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enable-flow-control", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """enable_flow_control must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enable-flow-control", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)""",
        })

    self.__enable_flow_control = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_enable_flow_control(self):
    self.__enable_flow_control = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enable-flow-control", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)


  def _get_fec_mode(self):
    """
    Getter method for fec_mode, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/config/fec_mode (identityref)

    YANG Description: The FEC mode applied to the physical channels associated with
the interface.
    """
    return self.__fec_mode
      
  def _set_fec_mode(self, v, load=False):
    """
    Setter method for fec_mode, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/config/fec_mode (identityref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_fec_mode is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_fec_mode() directly.

    YANG Description: The FEC mode applied to the physical channels associated with
the interface.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'FEC_FC': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_FC': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS528': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS528': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS544': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS544': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS544_2X_INTERLEAVE': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS544_2X_INTERLEAVE': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_DISABLED': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_DISABLED': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="fec-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='identityref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """fec_mode must be of a type compatible with identityref""",
          'defined-type': "openconfig-ap-interfaces:identityref",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'FEC_FC': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_FC': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS528': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS528': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS544': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS544': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS544_2X_INTERLEAVE': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS544_2X_INTERLEAVE': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_DISABLED': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_DISABLED': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="fec-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='identityref', is_config=True)""",
        })

    self.__fec_mode = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_fec_mode(self):
    self.__fec_mode = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'FEC_FC': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_FC': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS528': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS528': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS544': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS544': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS544_2X_INTERLEAVE': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS544_2X_INTERLEAVE': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_DISABLED': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_DISABLED': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="fec-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='identityref', is_config=True)

  mac_address = __builtin__.property(_get_mac_address, _set_mac_address)
  auto_negotiate = __builtin__.property(_get_auto_negotiate, _set_auto_negotiate)
  standalone_link_training = __builtin__.property(_get_standalone_link_training, _set_standalone_link_training)
  duplex_mode = __builtin__.property(_get_duplex_mode, _set_duplex_mode)
  port_speed = __builtin__.property(_get_port_speed, _set_port_speed)
  enable_flow_control = __builtin__.property(_get_enable_flow_control, _set_enable_flow_control)
  fec_mode = __builtin__.property(_get_fec_mode, _set_fec_mode)


  _pyangbind_elements = OrderedDict([('mac_address', mac_address), ('auto_negotiate', auto_negotiate), ('standalone_link_training', standalone_link_training), ('duplex_mode', duplex_mode), ('port_speed', port_speed), ('enable_flow_control', enable_flow_control), ('fec_mode', fec_mode), ])


class yc_counters_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_state_counters(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/ethernet/state/counters. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Ethernet interface counters
  """
  __slots__ = ('_path_helper', '_extmethods', '__in_mac_control_frames','__in_mac_pause_frames','__in_oversize_frames','__in_undersize_frames','__in_jabber_frames','__in_fragment_frames','__in_8021q_frames','__in_crc_errors','__in_block_errors','__in_carrier_errors','__in_interrupted_tx','__in_late_collision','__in_mac_errors_rx','__in_single_collision','__in_symbol_error','__in_maxsize_exceeded','__out_mac_control_frames','__out_mac_pause_frames','__out_8021q_frames','__out_mac_errors_tx',)

  _yang_name = 'counters'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__in_mac_control_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-mac-control-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__in_mac_pause_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-mac-pause-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__in_oversize_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-oversize-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__in_undersize_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-undersize-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__in_jabber_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-jabber-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__in_fragment_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-fragment-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__in_8021q_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-8021q-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__in_crc_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-crc-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__in_block_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-block-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__in_carrier_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-carrier-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__in_interrupted_tx = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-interrupted-tx", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__in_late_collision = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-late-collision", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__in_mac_errors_rx = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-mac-errors-rx", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__in_single_collision = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-single-collision", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__in_symbol_error = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-symbol-error", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__in_maxsize_exceeded = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-maxsize-exceeded", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__out_mac_control_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-mac-control-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__out_mac_pause_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-mac-pause-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__out_8021q_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-8021q-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__out_mac_errors_tx = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-mac-errors-tx", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', 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 ['access-points', 'access-point', 'interfaces', 'interface', 'ethernet', 'state', 'counters']

  def _get_in_mac_control_frames(self):
    """
    Getter method for in_mac_control_frames, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/state/counters/in_mac_control_frames (oc-yang:counter64)

    YANG Description: MAC layer control frames received on the interface
    """
    return self.__in_mac_control_frames
      
  def _set_in_mac_control_frames(self, v, load=False):
    """
    Setter method for in_mac_control_frames, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/state/counters/in_mac_control_frames (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_in_mac_control_frames is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_in_mac_control_frames() directly.

    YANG Description: MAC layer control frames received on the interface
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-mac-control-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """in_mac_control_frames must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-mac-control-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__in_mac_control_frames = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_in_mac_control_frames(self):
    self.__in_mac_control_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-mac-control-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_in_mac_pause_frames(self):
    """
    Getter method for in_mac_pause_frames, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/state/counters/in_mac_pause_frames (oc-yang:counter64)

    YANG Description: MAC layer PAUSE frames received on the interface
    """
    return self.__in_mac_pause_frames
      
  def _set_in_mac_pause_frames(self, v, load=False):
    """
    Setter method for in_mac_pause_frames, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/state/counters/in_mac_pause_frames (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_in_mac_pause_frames is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_in_mac_pause_frames() directly.

    YANG Description: MAC layer PAUSE frames received on the interface
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-mac-pause-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """in_mac_pause_frames must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-mac-pause-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__in_mac_pause_frames = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_in_mac_pause_frames(self):
    self.__in_mac_pause_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-mac-pause-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_in_oversize_frames(self):
    """
    Getter method for in_oversize_frames, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/state/counters/in_oversize_frames (oc-yang:counter64)

    YANG Description: The total number of frames received that were
longer than 1518 octets (excluding framing bits,
but including FCS octets) and were otherwise
well formed.
    """
    return self.__in_oversize_frames
      
  def _set_in_oversize_frames(self, v, load=False):
    """
    Setter method for in_oversize_frames, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/state/counters/in_oversize_frames (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_in_oversize_frames is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_in_oversize_frames() directly.

    YANG Description: The total number of frames received that were
longer than 1518 octets (excluding framing bits,
but including FCS octets) and were otherwise
well formed.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-oversize-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """in_oversize_frames must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-oversize-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__in_oversize_frames = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_in_oversize_frames(self):
    self.__in_oversize_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-oversize-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_in_undersize_frames(self):
    """
    Getter method for in_undersize_frames, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/state/counters/in_undersize_frames (oc-yang:counter64)

    YANG Description: The total number of frames received that were
less than 64 octets long (excluding framing bits,
but including FCS octets) and were otherwise well
formed.
    """
    return self.__in_undersize_frames
      
  def _set_in_undersize_frames(self, v, load=False):
    """
    Setter method for in_undersize_frames, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/state/counters/in_undersize_frames (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_in_undersize_frames is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_in_undersize_frames() directly.

    YANG Description: The total number of frames received that were
less than 64 octets long (excluding framing bits,
but including FCS octets) and were otherwise well
formed.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-undersize-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """in_undersize_frames must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-undersize-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__in_undersize_frames = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_in_undersize_frames(self):
    self.__in_undersize_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-undersize-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_in_jabber_frames(self):
    """
    Getter method for in_jabber_frames, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/state/counters/in_jabber_frames (oc-yang:counter64)

    YANG Description: Number of jabber frames received on the
interface.  Jabber frames are typically defined as oversize
frames which also have a bad CRC.  Implementations may use
slightly different definitions of what constitutes a jabber
frame.  Often indicative of a NIC hardware problem.
    """
    return self.__in_jabber_frames
      
  def _set_in_jabber_frames(self, v, load=False):
    """
    Setter method for in_jabber_frames, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/state/counters/in_jabber_frames (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_in_jabber_frames is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_in_jabber_frames() directly.

    YANG Description: Number of jabber frames received on the
interface.  Jabber frames are typically defined as oversize
frames which also have a bad CRC.  Implementations may use
slightly different definitions of what constitutes a jabber
frame.  Often indicative of a NIC hardware problem.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-jabber-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """in_jabber_frames must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-jabber-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__in_jabber_frames = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_in_jabber_frames(self):
    self.__in_jabber_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-jabber-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_in_fragment_frames(self):
    """
    Getter method for in_fragment_frames, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/state/counters/in_fragment_frames (oc-yang:counter64)

    YANG Description: The total number of frames received that were less than
64 octets in length (excluding framing bits but including
FCS octets) and had either a bad Frame Check Sequence
(FCS) with an integral number of octets (FCS Error) or a
bad FCS with a non-integral number of octets (Alignment
Error).
    """
    return self.__in_fragment_frames
      
  def _set_in_fragment_frames(self, v, load=False):
    """
    Setter method for in_fragment_frames, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/state/counters/in_fragment_frames (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_in_fragment_frames is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_in_fragment_frames() directly.

    YANG Description: The total number of frames received that were less than
64 octets in length (excluding framing bits but including
FCS octets) and had either a bad Frame Check Sequence
(FCS) with an integral number of octets (FCS Error) or a
bad FCS with a non-integral number of octets (Alignment
Error).
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-fragment-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """in_fragment_frames must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-fragment-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__in_fragment_frames = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_in_fragment_frames(self):
    self.__in_fragment_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-fragment-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_in_8021q_frames(self):
    """
    Getter method for in_8021q_frames, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/state/counters/in_8021q_frames (oc-yang:counter64)

    YANG Description: Number of 802.1q tagged frames received on the interface
    """
    return self.__in_8021q_frames
      
  def _set_in_8021q_frames(self, v, load=False):
    """
    Setter method for in_8021q_frames, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/state/counters/in_8021q_frames (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_in_8021q_frames is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_in_8021q_frames() directly.

    YANG Description: Number of 802.1q tagged frames received on the interface
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-8021q-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """in_8021q_frames must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-8021q-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__in_8021q_frames = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_in_8021q_frames(self):
    self.__in_8021q_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-8021q-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_in_crc_errors(self):
    """
    Getter method for in_crc_errors, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/state/counters/in_crc_errors (oc-yang:counter64)

    YANG Description: The total number of frames received that
had a length (excluding framing bits, but
including FCS octets) of between 64 and 1518
octets, inclusive, but had either a bad
Frame Check Sequence (FCS) with an integral
number of octets (FCS Error) or a bad FCS with
a non-integral number of octets (Alignment Error)
    """
    return self.__in_crc_errors
      
  def _set_in_crc_errors(self, v, load=False):
    """
    Setter method for in_crc_errors, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/state/counters/in_crc_errors (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_in_crc_errors is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_in_crc_errors() directly.

    YANG Description: The total number of frames received that
had a length (excluding framing bits, but
including FCS octets) of between 64 and 1518
octets, inclusive, but had either a bad
Frame Check Sequence (FCS) with an integral
number of octets (FCS Error) or a bad FCS with
a non-integral number of octets (Alignment Error)
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-crc-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """in_crc_errors must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-crc-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__in_crc_errors = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_in_crc_errors(self):
    self.__in_crc_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-crc-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_in_block_errors(self):
    """
    Getter method for in_block_errors, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/state/counters/in_block_errors (oc-yang:counter64)

    YANG Description: The number of received errored blocks. Error detection codes
are capable of detecting whether one or more errors have
occurred in a given sequence of bits – the block. It is
normally not possible to determine the exact number of errored
bits within the block
    """
    return self.__in_block_errors
      
  def _set_in_block_errors(self, v, load=False):
    """
    Setter method for in_block_errors, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/state/counters/in_block_errors (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_in_block_errors is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_in_block_errors() directly.

    YANG Description: The number of received errored blocks. Error detection codes
are capable of detecting whether one or more errors have
occurred in a given sequence of bits – the block. It is
normally not possible to determine the exact number of errored
bits within the block
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-block-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """in_block_errors must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-block-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__in_block_errors = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_in_block_errors(self):
    self.__in_block_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-block-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_in_carrier_errors(self):
    """
    Getter method for in_carrier_errors, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/state/counters/in_carrier_errors (oc-yang:counter64)

    YANG Description: The number of received errored frames due to a carrier issue.
The value refers to MIB counter for
dot3StatsCarrierSenseErrors
oid=1.3.6.1.2.1.10.7.2.1.11
    """
    return self.__in_carrier_errors
      
  def _set_in_carrier_errors(self, v, load=False):
    """
    Setter method for in_carrier_errors, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/state/counters/in_carrier_errors (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_in_carrier_errors is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_in_carrier_errors() directly.

    YANG Description: The number of received errored frames due to a carrier issue.
The value refers to MIB counter for
dot3StatsCarrierSenseErrors
oid=1.3.6.1.2.1.10.7.2.1.11
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-carrier-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """in_carrier_errors must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-carrier-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__in_carrier_errors = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_in_carrier_errors(self):
    self.__in_carrier_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-carrier-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_in_interrupted_tx(self):
    """
    Getter method for in_interrupted_tx, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/state/counters/in_interrupted_tx (oc-yang:counter64)

    YANG Description: The number of received errored frames due to interrupted
transmission issue. The value refers to MIB counter for
dot3StatsDeferredTransmissions
oid=1.3.6.1.2.1.10.7.2.1.7
    """
    return self.__in_interrupted_tx
      
  def _set_in_interrupted_tx(self, v, load=False):
    """
    Setter method for in_interrupted_tx, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/state/counters/in_interrupted_tx (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_in_interrupted_tx is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_in_interrupted_tx() directly.

    YANG Description: The number of received errored frames due to interrupted
transmission issue. The value refers to MIB counter for
dot3StatsDeferredTransmissions
oid=1.3.6.1.2.1.10.7.2.1.7
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-interrupted-tx", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """in_interrupted_tx must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-interrupted-tx", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__in_interrupted_tx = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_in_interrupted_tx(self):
    self.__in_interrupted_tx = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-interrupted-tx", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_in_late_collision(self):
    """
    Getter method for in_late_collision, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/state/counters/in_late_collision (oc-yang:counter64)

    YANG Description: The number of received errored frames due to late collision
issue. The value refers to MIB counter for
dot3StatsLateCollisions
oid=1.3.6.1.2.1.10.7.2.1.8
    """
    return self.__in_late_collision
      
  def _set_in_late_collision(self, v, load=False):
    """
    Setter method for in_late_collision, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/state/counters/in_late_collision (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_in_late_collision is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_in_late_collision() directly.

    YANG Description: The number of received errored frames due to late collision
issue. The value refers to MIB counter for
dot3StatsLateCollisions
oid=1.3.6.1.2.1.10.7.2.1.8
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-late-collision", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """in_late_collision must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-late-collision", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__in_late_collision = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_in_late_collision(self):
    self.__in_late_collision = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-late-collision", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_in_mac_errors_rx(self):
    """
    Getter method for in_mac_errors_rx, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/state/counters/in_mac_errors_rx (oc-yang:counter64)

    YANG Description: The number of received errored frames due to MAC errors
received. The value refers to MIB counter for
dot3StatsInternalMacReceiveErrors
oid=1.3.6.1.2.1.10.7.2.1.16
    """
    return self.__in_mac_errors_rx
      
  def _set_in_mac_errors_rx(self, v, load=False):
    """
    Setter method for in_mac_errors_rx, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/state/counters/in_mac_errors_rx (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_in_mac_errors_rx is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_in_mac_errors_rx() directly.

    YANG Description: The number of received errored frames due to MAC errors
received. The value refers to MIB counter for
dot3StatsInternalMacReceiveErrors
oid=1.3.6.1.2.1.10.7.2.1.16
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-mac-errors-rx", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """in_mac_errors_rx must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-mac-errors-rx", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__in_mac_errors_rx = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_in_mac_errors_rx(self):
    self.__in_mac_errors_rx = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-mac-errors-rx", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_in_single_collision(self):
    """
    Getter method for in_single_collision, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/state/counters/in_single_collision (oc-yang:counter64)

    YANG Description: The number of received errored frames due to single collision
issue. The value refers to MIB counter for
dot3StatsSingleCollisionFrames
oid=1.3.6.1.2.1.10.7.2.1.4
    """
    return self.__in_single_collision
      
  def _set_in_single_collision(self, v, load=False):
    """
    Setter method for in_single_collision, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/state/counters/in_single_collision (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_in_single_collision is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_in_single_collision() directly.

    YANG Description: The number of received errored frames due to single collision
issue. The value refers to MIB counter for
dot3StatsSingleCollisionFrames
oid=1.3.6.1.2.1.10.7.2.1.4
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-single-collision", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """in_single_collision must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-single-collision", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__in_single_collision = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_in_single_collision(self):
    self.__in_single_collision = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-single-collision", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_in_symbol_error(self):
    """
    Getter method for in_symbol_error, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/state/counters/in_symbol_error (oc-yang:counter64)

    YANG Description: The number of received errored frames due to symbol error.
The value refers to MIB counter for
in-symbol-error
oid=1.3.6.1.2.1.10.7.2.1.18
    """
    return self.__in_symbol_error
      
  def _set_in_symbol_error(self, v, load=False):
    """
    Setter method for in_symbol_error, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/state/counters/in_symbol_error (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_in_symbol_error is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_in_symbol_error() directly.

    YANG Description: The number of received errored frames due to symbol error.
The value refers to MIB counter for
in-symbol-error
oid=1.3.6.1.2.1.10.7.2.1.18
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-symbol-error", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """in_symbol_error must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-symbol-error", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__in_symbol_error = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_in_symbol_error(self):
    self.__in_symbol_error = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-symbol-error", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_in_maxsize_exceeded(self):
    """
    Getter method for in_maxsize_exceeded, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/state/counters/in_maxsize_exceeded (oc-yang:counter64)

    YANG Description: The total number frames received that are well-formed but
dropped due to exceeding the maximum frame size on the interface
(e.g., MTU or MRU)
    """
    return self.__in_maxsize_exceeded
      
  def _set_in_maxsize_exceeded(self, v, load=False):
    """
    Setter method for in_maxsize_exceeded, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/state/counters/in_maxsize_exceeded (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_in_maxsize_exceeded is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_in_maxsize_exceeded() directly.

    YANG Description: The total number frames received that are well-formed but
dropped due to exceeding the maximum frame size on the interface
(e.g., MTU or MRU)
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-maxsize-exceeded", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """in_maxsize_exceeded must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-maxsize-exceeded", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__in_maxsize_exceeded = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_in_maxsize_exceeded(self):
    self.__in_maxsize_exceeded = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-maxsize-exceeded", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_out_mac_control_frames(self):
    """
    Getter method for out_mac_control_frames, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/state/counters/out_mac_control_frames (oc-yang:counter64)

    YANG Description: MAC layer control frames sent on the interface
    """
    return self.__out_mac_control_frames
      
  def _set_out_mac_control_frames(self, v, load=False):
    """
    Setter method for out_mac_control_frames, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/state/counters/out_mac_control_frames (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_out_mac_control_frames is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_out_mac_control_frames() directly.

    YANG Description: MAC layer control frames sent on the interface
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-mac-control-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """out_mac_control_frames must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-mac-control-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__out_mac_control_frames = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_out_mac_control_frames(self):
    self.__out_mac_control_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-mac-control-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_out_mac_pause_frames(self):
    """
    Getter method for out_mac_pause_frames, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/state/counters/out_mac_pause_frames (oc-yang:counter64)

    YANG Description: MAC layer PAUSE frames sent on the interface
    """
    return self.__out_mac_pause_frames
      
  def _set_out_mac_pause_frames(self, v, load=False):
    """
    Setter method for out_mac_pause_frames, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/state/counters/out_mac_pause_frames (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_out_mac_pause_frames is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_out_mac_pause_frames() directly.

    YANG Description: MAC layer PAUSE frames sent on the interface
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-mac-pause-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """out_mac_pause_frames must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-mac-pause-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__out_mac_pause_frames = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_out_mac_pause_frames(self):
    self.__out_mac_pause_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-mac-pause-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_out_8021q_frames(self):
    """
    Getter method for out_8021q_frames, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/state/counters/out_8021q_frames (oc-yang:counter64)

    YANG Description: Number of 802.1q tagged frames sent on the interface
    """
    return self.__out_8021q_frames
      
  def _set_out_8021q_frames(self, v, load=False):
    """
    Setter method for out_8021q_frames, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/state/counters/out_8021q_frames (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_out_8021q_frames is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_out_8021q_frames() directly.

    YANG Description: Number of 802.1q tagged frames sent on the interface
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-8021q-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """out_8021q_frames must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-8021q-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__out_8021q_frames = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_out_8021q_frames(self):
    self.__out_8021q_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-8021q-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_out_mac_errors_tx(self):
    """
    Getter method for out_mac_errors_tx, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/state/counters/out_mac_errors_tx (oc-yang:counter64)

    YANG Description: The number of sent errored frames due to MAC errors
transmitted. The value refers to MIB counter for
dot3StatsInternalMacTransmitErrors
oid=1.3.6.1.2.1.10.7.2.1.10
    """
    return self.__out_mac_errors_tx
      
  def _set_out_mac_errors_tx(self, v, load=False):
    """
    Setter method for out_mac_errors_tx, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/state/counters/out_mac_errors_tx (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_out_mac_errors_tx is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_out_mac_errors_tx() directly.

    YANG Description: The number of sent errored frames due to MAC errors
transmitted. The value refers to MIB counter for
dot3StatsInternalMacTransmitErrors
oid=1.3.6.1.2.1.10.7.2.1.10
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-mac-errors-tx", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """out_mac_errors_tx must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-mac-errors-tx", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__out_mac_errors_tx = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_out_mac_errors_tx(self):
    self.__out_mac_errors_tx = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-mac-errors-tx", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)

  in_mac_control_frames = __builtin__.property(_get_in_mac_control_frames)
  in_mac_pause_frames = __builtin__.property(_get_in_mac_pause_frames)
  in_oversize_frames = __builtin__.property(_get_in_oversize_frames)
  in_undersize_frames = __builtin__.property(_get_in_undersize_frames)
  in_jabber_frames = __builtin__.property(_get_in_jabber_frames)
  in_fragment_frames = __builtin__.property(_get_in_fragment_frames)
  in_8021q_frames = __builtin__.property(_get_in_8021q_frames)
  in_crc_errors = __builtin__.property(_get_in_crc_errors)
  in_block_errors = __builtin__.property(_get_in_block_errors)
  in_carrier_errors = __builtin__.property(_get_in_carrier_errors)
  in_interrupted_tx = __builtin__.property(_get_in_interrupted_tx)
  in_late_collision = __builtin__.property(_get_in_late_collision)
  in_mac_errors_rx = __builtin__.property(_get_in_mac_errors_rx)
  in_single_collision = __builtin__.property(_get_in_single_collision)
  in_symbol_error = __builtin__.property(_get_in_symbol_error)
  in_maxsize_exceeded = __builtin__.property(_get_in_maxsize_exceeded)
  out_mac_control_frames = __builtin__.property(_get_out_mac_control_frames)
  out_mac_pause_frames = __builtin__.property(_get_out_mac_pause_frames)
  out_8021q_frames = __builtin__.property(_get_out_8021q_frames)
  out_mac_errors_tx = __builtin__.property(_get_out_mac_errors_tx)


  _pyangbind_elements = OrderedDict([('in_mac_control_frames', in_mac_control_frames), ('in_mac_pause_frames', in_mac_pause_frames), ('in_oversize_frames', in_oversize_frames), ('in_undersize_frames', in_undersize_frames), ('in_jabber_frames', in_jabber_frames), ('in_fragment_frames', in_fragment_frames), ('in_8021q_frames', in_8021q_frames), ('in_crc_errors', in_crc_errors), ('in_block_errors', in_block_errors), ('in_carrier_errors', in_carrier_errors), ('in_interrupted_tx', in_interrupted_tx), ('in_late_collision', in_late_collision), ('in_mac_errors_rx', in_mac_errors_rx), ('in_single_collision', in_single_collision), ('in_symbol_error', in_symbol_error), ('in_maxsize_exceeded', in_maxsize_exceeded), ('out_mac_control_frames', out_mac_control_frames), ('out_mac_pause_frames', out_mac_pause_frames), ('out_8021q_frames', out_8021q_frames), ('out_mac_errors_tx', out_mac_errors_tx), ])


class yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/ethernet/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: State variables for Ethernet interfaces
  """
  __slots__ = ('_path_helper', '_extmethods', '__mac_address','__auto_negotiate','__standalone_link_training','__duplex_mode','__port_speed','__enable_flow_control','__fec_mode','__hw_mac_address','__negotiated_duplex_mode','__negotiated_port_speed','__counters',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__mac_address = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="mac-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:mac-address', is_config=False)
    self.__auto_negotiate = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="auto-negotiate", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)
    self.__standalone_link_training = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="standalone-link-training", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)
    self.__duplex_mode = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'FULL': {}, 'HALF': {}},), is_leaf=True, yang_name="duplex-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', is_config=False)
    self.__port_speed = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="port-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='identityref', is_config=False)
    self.__enable_flow_control = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enable-flow-control", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)
    self.__fec_mode = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'FEC_FC': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_FC': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS528': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS528': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS544': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS544': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS544_2X_INTERLEAVE': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS544_2X_INTERLEAVE': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_DISABLED': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_DISABLED': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="fec-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='identityref', is_config=False)
    self.__hw_mac_address = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="hw-mac-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:mac-address', is_config=False)
    self.__negotiated_duplex_mode = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'FULL': {}, 'HALF': {}},), is_leaf=True, yang_name="negotiated-duplex-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', is_config=False)
    self.__negotiated_port_speed = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="negotiated-port-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='identityref', is_config=False)
    self.__counters = YANGDynClass(base=yc_counters_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_state_counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', 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 ['access-points', 'access-point', 'interfaces', 'interface', 'ethernet', 'state']

  def _get_mac_address(self):
    """
    Getter method for mac_address, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/state/mac_address (oc-yang:mac-address)

    YANG Description: Assigns a MAC address to the Ethernet interface.  If not
specified, the corresponding operational state leaf is
expected to show the system-assigned MAC address.
    """
    return self.__mac_address
      
  def _set_mac_address(self, v, load=False):
    """
    Setter method for mac_address, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/state/mac_address (oc-yang:mac-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mac_address is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mac_address() directly.

    YANG Description: Assigns a MAC address to the Ethernet interface.  If not
specified, the corresponding operational state leaf is
expected to show the system-assigned MAC address.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="mac-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:mac-address', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mac_address must be of a type compatible with oc-yang:mac-address""",
          'defined-type': "oc-yang:mac-address",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="mac-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:mac-address', is_config=False)""",
        })

    self.__mac_address = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mac_address(self):
    self.__mac_address = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="mac-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:mac-address', is_config=False)


  def _get_auto_negotiate(self):
    """
    Getter method for auto_negotiate, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/state/auto_negotiate (boolean)

    YANG Description: Set to TRUE to request the interface to auto-negotiate
transmission parameters with its peer interface.  When
set to FALSE, the transmission parameters are specified
manually.
    """
    return self.__auto_negotiate
      
  def _set_auto_negotiate(self, v, load=False):
    """
    Setter method for auto_negotiate, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/state/auto_negotiate (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_auto_negotiate is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_auto_negotiate() directly.

    YANG Description: Set to TRUE to request the interface to auto-negotiate
transmission parameters with its peer interface.  When
set to FALSE, the transmission parameters are specified
manually.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="auto-negotiate", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """auto_negotiate must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="auto-negotiate", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)""",
        })

    self.__auto_negotiate = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_auto_negotiate(self):
    self.__auto_negotiate = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="auto-negotiate", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)


  def _get_standalone_link_training(self):
    """
    Getter method for standalone_link_training, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/state/standalone_link_training (boolean)

    YANG Description: Link training is automatic tuning of the SerDes transmit and
receive parameters to ensure an optimal connection over copper
links. It is normally run as part of the auto negotiation
sequence as specified in IEEE 802.3 Clause 73.

Standalone link training is used when full auto negotiation is
not desired on an Ethernet link but link training is needed.
It is configured by setting the standalone-link-training leaf
to TRUE and augo-negotiate leaf to FALSE.

Note: If auto-negotiate is true, then the value of standalone
link training leaf will be ignored.
    """
    return self.__standalone_link_training
      
  def _set_standalone_link_training(self, v, load=False):
    """
    Setter method for standalone_link_training, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/state/standalone_link_training (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_standalone_link_training is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_standalone_link_training() directly.

    YANG Description: Link training is automatic tuning of the SerDes transmit and
receive parameters to ensure an optimal connection over copper
links. It is normally run as part of the auto negotiation
sequence as specified in IEEE 802.3 Clause 73.

Standalone link training is used when full auto negotiation is
not desired on an Ethernet link but link training is needed.
It is configured by setting the standalone-link-training leaf
to TRUE and augo-negotiate leaf to FALSE.

Note: If auto-negotiate is true, then the value of standalone
link training leaf will be ignored.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="standalone-link-training", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """standalone_link_training must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="standalone-link-training", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)""",
        })

    self.__standalone_link_training = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_standalone_link_training(self):
    self.__standalone_link_training = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="standalone-link-training", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)


  def _get_duplex_mode(self):
    """
    Getter method for duplex_mode, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/state/duplex_mode (enumeration)

    YANG Description: When auto-negotiate is TRUE, this optionally sets the
duplex mode that will be advertised to the peer.  If
unspecified, the interface should negotiate the duplex mode
directly (typically full-duplex).  When auto-negotiate is
FALSE, this sets the duplex mode on the interface directly.
    """
    return self.__duplex_mode
      
  def _set_duplex_mode(self, v, load=False):
    """
    Setter method for duplex_mode, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/state/duplex_mode (enumeration)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_duplex_mode is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_duplex_mode() directly.

    YANG Description: When auto-negotiate is TRUE, this optionally sets the
duplex mode that will be advertised to the peer.  If
unspecified, the interface should negotiate the duplex mode
directly (typically full-duplex).  When auto-negotiate is
FALSE, this sets the duplex mode on the interface directly.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'FULL': {}, 'HALF': {}},), is_leaf=True, yang_name="duplex-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """duplex_mode must be of a type compatible with enumeration""",
          'defined-type': "openconfig-ap-interfaces:enumeration",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'FULL': {}, 'HALF': {}},), is_leaf=True, yang_name="duplex-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', is_config=False)""",
        })

    self.__duplex_mode = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_duplex_mode(self):
    self.__duplex_mode = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'FULL': {}, 'HALF': {}},), is_leaf=True, yang_name="duplex-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', is_config=False)


  def _get_port_speed(self):
    """
    Getter method for port_speed, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/state/port_speed (identityref)

    YANG Description: When auto-negotiate is TRUE, this optionally sets the
port-speed mode that will be advertised to the peer for
negotiation.  If unspecified, it is expected that the
interface will select the highest speed available based on
negotiation.  When auto-negotiate is set to FALSE, sets the
link speed to a fixed value -- supported values are defined
by ETHERNET_SPEED identities
    """
    return self.__port_speed
      
  def _set_port_speed(self, v, load=False):
    """
    Setter method for port_speed, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/state/port_speed (identityref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_port_speed is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_port_speed() directly.

    YANG Description: When auto-negotiate is TRUE, this optionally sets the
port-speed mode that will be advertised to the peer for
negotiation.  If unspecified, it is expected that the
interface will select the highest speed available based on
negotiation.  When auto-negotiate is set to FALSE, sets the
link speed to a fixed value -- supported values are defined
by ETHERNET_SPEED identities
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="port-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='identityref', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """port_speed must be of a type compatible with identityref""",
          'defined-type': "openconfig-ap-interfaces:identityref",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="port-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='identityref', is_config=False)""",
        })

    self.__port_speed = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_port_speed(self):
    self.__port_speed = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="port-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='identityref', is_config=False)


  def _get_enable_flow_control(self):
    """
    Getter method for enable_flow_control, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/state/enable_flow_control (boolean)

    YANG Description: Enable or disable flow control for this interface.
Ethernet flow control is a mechanism by which a receiver
may send PAUSE frames to a sender to stop transmission for
a specified time.

This setting should override auto-negotiated flow control
settings.  If left unspecified, and auto-negotiate is TRUE,
flow control mode is negotiated with the peer interface.
    """
    return self.__enable_flow_control
      
  def _set_enable_flow_control(self, v, load=False):
    """
    Setter method for enable_flow_control, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/state/enable_flow_control (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_enable_flow_control is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_enable_flow_control() directly.

    YANG Description: Enable or disable flow control for this interface.
Ethernet flow control is a mechanism by which a receiver
may send PAUSE frames to a sender to stop transmission for
a specified time.

This setting should override auto-negotiated flow control
settings.  If left unspecified, and auto-negotiate is TRUE,
flow control mode is negotiated with the peer interface.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enable-flow-control", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """enable_flow_control must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enable-flow-control", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)""",
        })

    self.__enable_flow_control = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_enable_flow_control(self):
    self.__enable_flow_control = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enable-flow-control", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)


  def _get_fec_mode(self):
    """
    Getter method for fec_mode, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/state/fec_mode (identityref)

    YANG Description: The FEC mode applied to the physical channels associated with
the interface.
    """
    return self.__fec_mode
      
  def _set_fec_mode(self, v, load=False):
    """
    Setter method for fec_mode, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/state/fec_mode (identityref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_fec_mode is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_fec_mode() directly.

    YANG Description: The FEC mode applied to the physical channels associated with
the interface.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'FEC_FC': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_FC': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS528': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS528': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS544': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS544': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS544_2X_INTERLEAVE': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS544_2X_INTERLEAVE': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_DISABLED': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_DISABLED': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="fec-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='identityref', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """fec_mode must be of a type compatible with identityref""",
          'defined-type': "openconfig-ap-interfaces:identityref",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'FEC_FC': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_FC': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS528': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS528': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS544': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS544': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS544_2X_INTERLEAVE': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS544_2X_INTERLEAVE': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_DISABLED': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_DISABLED': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="fec-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='identityref', is_config=False)""",
        })

    self.__fec_mode = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_fec_mode(self):
    self.__fec_mode = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'FEC_FC': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_FC': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS528': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS528': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS544': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS544': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS544_2X_INTERLEAVE': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS544_2X_INTERLEAVE': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_DISABLED': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_DISABLED': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="fec-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='identityref', is_config=False)


  def _get_hw_mac_address(self):
    """
    Getter method for hw_mac_address, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/state/hw_mac_address (oc-yang:mac-address)

    YANG Description: Represents the 'burned-in', or system-assigned, MAC
address for the Ethernet interface.
    """
    return self.__hw_mac_address
      
  def _set_hw_mac_address(self, v, load=False):
    """
    Setter method for hw_mac_address, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/state/hw_mac_address (oc-yang:mac-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_hw_mac_address is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_hw_mac_address() directly.

    YANG Description: Represents the 'burned-in', or system-assigned, MAC
address for the Ethernet interface.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="hw-mac-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:mac-address', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """hw_mac_address must be of a type compatible with oc-yang:mac-address""",
          'defined-type': "oc-yang:mac-address",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="hw-mac-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:mac-address', is_config=False)""",
        })

    self.__hw_mac_address = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_hw_mac_address(self):
    self.__hw_mac_address = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="hw-mac-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:mac-address', is_config=False)


  def _get_negotiated_duplex_mode(self):
    """
    Getter method for negotiated_duplex_mode, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/state/negotiated_duplex_mode (enumeration)

    YANG Description: When auto-negotiate is set to TRUE, and the interface has
completed auto-negotiation with the remote peer, this value
shows the duplex mode that has been negotiated.
    """
    return self.__negotiated_duplex_mode
      
  def _set_negotiated_duplex_mode(self, v, load=False):
    """
    Setter method for negotiated_duplex_mode, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/state/negotiated_duplex_mode (enumeration)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_negotiated_duplex_mode is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_negotiated_duplex_mode() directly.

    YANG Description: When auto-negotiate is set to TRUE, and the interface has
completed auto-negotiation with the remote peer, this value
shows the duplex mode that has been negotiated.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'FULL': {}, 'HALF': {}},), is_leaf=True, yang_name="negotiated-duplex-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """negotiated_duplex_mode must be of a type compatible with enumeration""",
          'defined-type': "openconfig-ap-interfaces:enumeration",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'FULL': {}, 'HALF': {}},), is_leaf=True, yang_name="negotiated-duplex-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', is_config=False)""",
        })

    self.__negotiated_duplex_mode = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_negotiated_duplex_mode(self):
    self.__negotiated_duplex_mode = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'FULL': {}, 'HALF': {}},), is_leaf=True, yang_name="negotiated-duplex-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', is_config=False)


  def _get_negotiated_port_speed(self):
    """
    Getter method for negotiated_port_speed, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/state/negotiated_port_speed (identityref)

    YANG Description: When auto-negotiate is set to TRUE, and the interface has
completed auto-negotiation with the remote peer, this value
shows the interface speed that has been negotiated.
    """
    return self.__negotiated_port_speed
      
  def _set_negotiated_port_speed(self, v, load=False):
    """
    Setter method for negotiated_port_speed, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/state/negotiated_port_speed (identityref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_negotiated_port_speed is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_negotiated_port_speed() directly.

    YANG Description: When auto-negotiate is set to TRUE, and the interface has
completed auto-negotiation with the remote peer, this value
shows the interface speed that has been negotiated.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="negotiated-port-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='identityref', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """negotiated_port_speed must be of a type compatible with identityref""",
          'defined-type': "openconfig-ap-interfaces:identityref",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="negotiated-port-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='identityref', is_config=False)""",
        })

    self.__negotiated_port_speed = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_negotiated_port_speed(self):
    self.__negotiated_port_speed = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="negotiated-port-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='identityref', is_config=False)


  def _get_counters(self):
    """
    Getter method for counters, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/state/counters (container)

    YANG Description: Ethernet interface counters
    """
    return self.__counters
      
  def _set_counters(self, v, load=False):
    """
    Setter method for counters, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/state/counters (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_counters is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_counters() directly.

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

    self.__counters = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_counters(self):
    self.__counters = YANGDynClass(base=yc_counters_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_state_counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=False)

  mac_address = __builtin__.property(_get_mac_address)
  auto_negotiate = __builtin__.property(_get_auto_negotiate)
  standalone_link_training = __builtin__.property(_get_standalone_link_training)
  duplex_mode = __builtin__.property(_get_duplex_mode)
  port_speed = __builtin__.property(_get_port_speed)
  enable_flow_control = __builtin__.property(_get_enable_flow_control)
  fec_mode = __builtin__.property(_get_fec_mode)
  hw_mac_address = __builtin__.property(_get_hw_mac_address)
  negotiated_duplex_mode = __builtin__.property(_get_negotiated_duplex_mode)
  negotiated_port_speed = __builtin__.property(_get_negotiated_port_speed)
  counters = __builtin__.property(_get_counters)


  _pyangbind_elements = OrderedDict([('mac_address', mac_address), ('auto_negotiate', auto_negotiate), ('standalone_link_training', standalone_link_training), ('duplex_mode', duplex_mode), ('port_speed', port_speed), ('enable_flow_control', enable_flow_control), ('fec_mode', fec_mode), ('hw_mac_address', hw_mac_address), ('negotiated_duplex_mode', negotiated_duplex_mode), ('negotiated_port_speed', negotiated_port_speed), ('counters', counters), ])


class yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_dot1x_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/ethernet/dot1x/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Top level configuration container for 802.1X.
  """
  __slots__ = ('_path_helper', '_extmethods', '__authenticate_port','__host_mode','__reauthenticate_interval','__retransmit_interval','__supplicant_timeout','__max_requests','__server_fail_vlan','__auth_fail_vlan',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__authenticate_port = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="authenticate-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)
    self.__host_mode = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'SINGLE_HOST': {}, 'MULTI_HOST': {}, 'MULTI_DOMAIN': {}},), is_leaf=True, yang_name="host-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', is_config=True)
    self.__reauthenticate_interval = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="reauthenticate-interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint16', is_config=True)
    self.__retransmit_interval = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="retransmit-interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint16', is_config=True)
    self.__supplicant_timeout = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="supplicant-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint16', is_config=True)
    self.__max_requests = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="max-requests", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint16', is_config=True)
    self.__server_fail_vlan = YANGDynClass(base=[six.text_type,RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}),], is_leaf=True, yang_name="server-fail-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='union', is_config=True)
    self.__auth_fail_vlan = YANGDynClass(base=[six.text_type,RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}),], is_leaf=True, yang_name="auth-fail-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='union', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'ethernet', 'dot1x', 'config']

  def _get_authenticate_port(self):
    """
    Getter method for authenticate_port, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/dot1x/config/authenticate_port (boolean)

    YANG Description: Enable 802.1X port control on an interface.
    """
    return self.__authenticate_port
      
  def _set_authenticate_port(self, v, load=False):
    """
    Setter method for authenticate_port, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/dot1x/config/authenticate_port (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_authenticate_port is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_authenticate_port() directly.

    YANG Description: Enable 802.1X port control on an interface.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="authenticate-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """authenticate_port must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="authenticate-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)""",
        })

    self.__authenticate_port = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_authenticate_port(self):
    self.__authenticate_port = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="authenticate-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)


  def _get_host_mode(self):
    """
    Getter method for host_mode, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/dot1x/config/host_mode (enumeration)

    YANG Description: Allow for single or multiple hosts to communicate through
an 802.1X controlled port.
    """
    return self.__host_mode
      
  def _set_host_mode(self, v, load=False):
    """
    Setter method for host_mode, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/dot1x/config/host_mode (enumeration)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_host_mode is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_host_mode() directly.

    YANG Description: Allow for single or multiple hosts to communicate through
an 802.1X controlled port.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'SINGLE_HOST': {}, 'MULTI_HOST': {}, 'MULTI_DOMAIN': {}},), is_leaf=True, yang_name="host-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """host_mode must be of a type compatible with enumeration""",
          'defined-type': "openconfig-ap-interfaces:enumeration",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'SINGLE_HOST': {}, 'MULTI_HOST': {}, 'MULTI_DOMAIN': {}},), is_leaf=True, yang_name="host-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', is_config=True)""",
        })

    self.__host_mode = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_host_mode(self):
    self.__host_mode = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'SINGLE_HOST': {}, 'MULTI_HOST': {}, 'MULTI_DOMAIN': {}},), is_leaf=True, yang_name="host-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', is_config=True)


  def _get_reauthenticate_interval(self):
    """
    Getter method for reauthenticate_interval, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/dot1x/config/reauthenticate_interval (uint16)

    YANG Description: Enable periodic re-authentication of the device connected
to this port. Setting a value of 0 disabled reauthentication
on this port.
    """
    return self.__reauthenticate_interval
      
  def _set_reauthenticate_interval(self, v, load=False):
    """
    Setter method for reauthenticate_interval, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/dot1x/config/reauthenticate_interval (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_reauthenticate_interval is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_reauthenticate_interval() directly.

    YANG Description: Enable periodic re-authentication of the device connected
to this port. Setting a value of 0 disabled reauthentication
on this port.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="reauthenticate-interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint16', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """reauthenticate_interval must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="reauthenticate-interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint16', is_config=True)""",
        })

    self.__reauthenticate_interval = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_reauthenticate_interval(self):
    self.__reauthenticate_interval = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="reauthenticate-interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint16', is_config=True)


  def _get_retransmit_interval(self):
    """
    Getter method for retransmit_interval, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/dot1x/config/retransmit_interval (uint16)

    YANG Description: How long the interface waits for a response from an
EAPoL Start before restarting 802.1X authentication on the
port.
    """
    return self.__retransmit_interval
      
  def _set_retransmit_interval(self, v, load=False):
    """
    Setter method for retransmit_interval, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/dot1x/config/retransmit_interval (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_retransmit_interval is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_retransmit_interval() directly.

    YANG Description: How long the interface waits for a response from an
EAPoL Start before restarting 802.1X authentication on the
port.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="retransmit-interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint16', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """retransmit_interval must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="retransmit-interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint16', is_config=True)""",
        })

    self.__retransmit_interval = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_retransmit_interval(self):
    self.__retransmit_interval = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="retransmit-interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint16', is_config=True)


  def _get_supplicant_timeout(self):
    """
    Getter method for supplicant_timeout, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/dot1x/config/supplicant_timeout (uint16)

    YANG Description: Time to wait for a response from the supplicant before
restarting the 802.1X authentication process.
    """
    return self.__supplicant_timeout
      
  def _set_supplicant_timeout(self, v, load=False):
    """
    Setter method for supplicant_timeout, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/dot1x/config/supplicant_timeout (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_supplicant_timeout is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_supplicant_timeout() directly.

    YANG Description: Time to wait for a response from the supplicant before
restarting the 802.1X authentication process.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="supplicant-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint16', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """supplicant_timeout must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="supplicant-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint16', is_config=True)""",
        })

    self.__supplicant_timeout = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_supplicant_timeout(self):
    self.__supplicant_timeout = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="supplicant-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint16', is_config=True)


  def _get_max_requests(self):
    """
    Getter method for max_requests, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/dot1x/config/max_requests (uint16)

    YANG Description: Maximum number of times an EAPoL request packet is retransmitted
to the supplicant before the authentication session fails.
    """
    return self.__max_requests
      
  def _set_max_requests(self, v, load=False):
    """
    Setter method for max_requests, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/dot1x/config/max_requests (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_max_requests is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_max_requests() directly.

    YANG Description: Maximum number of times an EAPoL request packet is retransmitted
to the supplicant before the authentication session fails.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="max-requests", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint16', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """max_requests must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="max-requests", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint16', is_config=True)""",
        })

    self.__max_requests = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_max_requests(self):
    self.__max_requests = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="max-requests", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint16', is_config=True)


  def _get_server_fail_vlan(self):
    """
    Getter method for server_fail_vlan, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/dot1x/config/server_fail_vlan (union)

    YANG Description: If RADIUS is unresponsive, the supplicant shall be placed in
this VLAN. If this VLAN is configured as a VLAN name, the
vlan-map must be populated for the Authenticator to map this
VLAN name to a VLAN id.
    """
    return self.__server_fail_vlan
      
  def _set_server_fail_vlan(self, v, load=False):
    """
    Setter method for server_fail_vlan, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/dot1x/config/server_fail_vlan (union)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_server_fail_vlan is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_server_fail_vlan() directly.

    YANG Description: If RADIUS is unresponsive, the supplicant shall be placed in
this VLAN. If this VLAN is configured as a VLAN name, the
vlan-map must be populated for the Authenticator to map this
VLAN name to a VLAN id.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=[six.text_type,RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}),], is_leaf=True, yang_name="server-fail-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='union', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """server_fail_vlan must be of a type compatible with union""",
          'defined-type': "openconfig-ap-interfaces:union",
          'generated-type': """YANGDynClass(base=[six.text_type,RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}),], is_leaf=True, yang_name="server-fail-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='union', is_config=True)""",
        })

    self.__server_fail_vlan = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_server_fail_vlan(self):
    self.__server_fail_vlan = YANGDynClass(base=[six.text_type,RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}),], is_leaf=True, yang_name="server-fail-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='union', is_config=True)


  def _get_auth_fail_vlan(self):
    """
    Getter method for auth_fail_vlan, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/dot1x/config/auth_fail_vlan (union)

    YANG Description: Upon failure to authenticate, the port is set to this VLAN.
If this VLAN is a configured as a VLAN name, the vlan-map must
be populated for the Authenticator to map this VLAN name to a
VLAN id.
    """
    return self.__auth_fail_vlan
      
  def _set_auth_fail_vlan(self, v, load=False):
    """
    Setter method for auth_fail_vlan, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/dot1x/config/auth_fail_vlan (union)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_auth_fail_vlan is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_auth_fail_vlan() directly.

    YANG Description: Upon failure to authenticate, the port is set to this VLAN.
If this VLAN is a configured as a VLAN name, the vlan-map must
be populated for the Authenticator to map this VLAN name to a
VLAN id.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=[six.text_type,RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}),], is_leaf=True, yang_name="auth-fail-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='union', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """auth_fail_vlan must be of a type compatible with union""",
          'defined-type': "openconfig-ap-interfaces:union",
          'generated-type': """YANGDynClass(base=[six.text_type,RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}),], is_leaf=True, yang_name="auth-fail-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='union', is_config=True)""",
        })

    self.__auth_fail_vlan = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_auth_fail_vlan(self):
    self.__auth_fail_vlan = YANGDynClass(base=[six.text_type,RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}),], is_leaf=True, yang_name="auth-fail-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='union', is_config=True)

  authenticate_port = __builtin__.property(_get_authenticate_port, _set_authenticate_port)
  host_mode = __builtin__.property(_get_host_mode, _set_host_mode)
  reauthenticate_interval = __builtin__.property(_get_reauthenticate_interval, _set_reauthenticate_interval)
  retransmit_interval = __builtin__.property(_get_retransmit_interval, _set_retransmit_interval)
  supplicant_timeout = __builtin__.property(_get_supplicant_timeout, _set_supplicant_timeout)
  max_requests = __builtin__.property(_get_max_requests, _set_max_requests)
  server_fail_vlan = __builtin__.property(_get_server_fail_vlan, _set_server_fail_vlan)
  auth_fail_vlan = __builtin__.property(_get_auth_fail_vlan, _set_auth_fail_vlan)


  _pyangbind_elements = OrderedDict([('authenticate_port', authenticate_port), ('host_mode', host_mode), ('reauthenticate_interval', reauthenticate_interval), ('retransmit_interval', retransmit_interval), ('supplicant_timeout', supplicant_timeout), ('max_requests', max_requests), ('server_fail_vlan', server_fail_vlan), ('auth_fail_vlan', auth_fail_vlan), ])


class yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_dot1x_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/ethernet/dot1x/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Top level state container for 802.1X.
  """
  __slots__ = ('_path_helper', '_extmethods', '__authenticate_port','__host_mode','__reauthenticate_interval','__retransmit_interval','__supplicant_timeout','__max_requests','__server_fail_vlan','__auth_fail_vlan',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__authenticate_port = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="authenticate-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)
    self.__host_mode = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'SINGLE_HOST': {}, 'MULTI_HOST': {}, 'MULTI_DOMAIN': {}},), is_leaf=True, yang_name="host-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', is_config=False)
    self.__reauthenticate_interval = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="reauthenticate-interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint16', is_config=False)
    self.__retransmit_interval = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="retransmit-interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint16', is_config=False)
    self.__supplicant_timeout = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="supplicant-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint16', is_config=False)
    self.__max_requests = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="max-requests", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint16', is_config=False)
    self.__server_fail_vlan = YANGDynClass(base=[six.text_type,RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}),], is_leaf=True, yang_name="server-fail-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='union', is_config=False)
    self.__auth_fail_vlan = YANGDynClass(base=[six.text_type,RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}),], is_leaf=True, yang_name="auth-fail-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='union', 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 ['access-points', 'access-point', 'interfaces', 'interface', 'ethernet', 'dot1x', 'state']

  def _get_authenticate_port(self):
    """
    Getter method for authenticate_port, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/dot1x/state/authenticate_port (boolean)

    YANG Description: Enable 802.1X port control on an interface.
    """
    return self.__authenticate_port
      
  def _set_authenticate_port(self, v, load=False):
    """
    Setter method for authenticate_port, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/dot1x/state/authenticate_port (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_authenticate_port is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_authenticate_port() directly.

    YANG Description: Enable 802.1X port control on an interface.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="authenticate-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """authenticate_port must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="authenticate-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)""",
        })

    self.__authenticate_port = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_authenticate_port(self):
    self.__authenticate_port = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="authenticate-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)


  def _get_host_mode(self):
    """
    Getter method for host_mode, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/dot1x/state/host_mode (enumeration)

    YANG Description: Allow for single or multiple hosts to communicate through
an 802.1X controlled port.
    """
    return self.__host_mode
      
  def _set_host_mode(self, v, load=False):
    """
    Setter method for host_mode, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/dot1x/state/host_mode (enumeration)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_host_mode is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_host_mode() directly.

    YANG Description: Allow for single or multiple hosts to communicate through
an 802.1X controlled port.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'SINGLE_HOST': {}, 'MULTI_HOST': {}, 'MULTI_DOMAIN': {}},), is_leaf=True, yang_name="host-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """host_mode must be of a type compatible with enumeration""",
          'defined-type': "openconfig-ap-interfaces:enumeration",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'SINGLE_HOST': {}, 'MULTI_HOST': {}, 'MULTI_DOMAIN': {}},), is_leaf=True, yang_name="host-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', is_config=False)""",
        })

    self.__host_mode = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_host_mode(self):
    self.__host_mode = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'SINGLE_HOST': {}, 'MULTI_HOST': {}, 'MULTI_DOMAIN': {}},), is_leaf=True, yang_name="host-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', is_config=False)


  def _get_reauthenticate_interval(self):
    """
    Getter method for reauthenticate_interval, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/dot1x/state/reauthenticate_interval (uint16)

    YANG Description: Enable periodic re-authentication of the device connected
to this port. Setting a value of 0 disabled reauthentication
on this port.
    """
    return self.__reauthenticate_interval
      
  def _set_reauthenticate_interval(self, v, load=False):
    """
    Setter method for reauthenticate_interval, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/dot1x/state/reauthenticate_interval (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_reauthenticate_interval is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_reauthenticate_interval() directly.

    YANG Description: Enable periodic re-authentication of the device connected
to this port. Setting a value of 0 disabled reauthentication
on this port.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="reauthenticate-interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint16', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """reauthenticate_interval must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="reauthenticate-interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint16', is_config=False)""",
        })

    self.__reauthenticate_interval = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_reauthenticate_interval(self):
    self.__reauthenticate_interval = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="reauthenticate-interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint16', is_config=False)


  def _get_retransmit_interval(self):
    """
    Getter method for retransmit_interval, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/dot1x/state/retransmit_interval (uint16)

    YANG Description: How long the interface waits for a response from an
EAPoL Start before restarting 802.1X authentication on the
port.
    """
    return self.__retransmit_interval
      
  def _set_retransmit_interval(self, v, load=False):
    """
    Setter method for retransmit_interval, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/dot1x/state/retransmit_interval (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_retransmit_interval is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_retransmit_interval() directly.

    YANG Description: How long the interface waits for a response from an
EAPoL Start before restarting 802.1X authentication on the
port.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="retransmit-interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint16', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """retransmit_interval must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="retransmit-interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint16', is_config=False)""",
        })

    self.__retransmit_interval = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_retransmit_interval(self):
    self.__retransmit_interval = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="retransmit-interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint16', is_config=False)


  def _get_supplicant_timeout(self):
    """
    Getter method for supplicant_timeout, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/dot1x/state/supplicant_timeout (uint16)

    YANG Description: Time to wait for a response from the supplicant before
restarting the 802.1X authentication process.
    """
    return self.__supplicant_timeout
      
  def _set_supplicant_timeout(self, v, load=False):
    """
    Setter method for supplicant_timeout, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/dot1x/state/supplicant_timeout (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_supplicant_timeout is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_supplicant_timeout() directly.

    YANG Description: Time to wait for a response from the supplicant before
restarting the 802.1X authentication process.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="supplicant-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint16', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """supplicant_timeout must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="supplicant-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint16', is_config=False)""",
        })

    self.__supplicant_timeout = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_supplicant_timeout(self):
    self.__supplicant_timeout = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="supplicant-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint16', is_config=False)


  def _get_max_requests(self):
    """
    Getter method for max_requests, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/dot1x/state/max_requests (uint16)

    YANG Description: Maximum number of times an EAPoL request packet is retransmitted
to the supplicant before the authentication session fails.
    """
    return self.__max_requests
      
  def _set_max_requests(self, v, load=False):
    """
    Setter method for max_requests, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/dot1x/state/max_requests (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_max_requests is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_max_requests() directly.

    YANG Description: Maximum number of times an EAPoL request packet is retransmitted
to the supplicant before the authentication session fails.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="max-requests", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint16', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """max_requests must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="max-requests", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint16', is_config=False)""",
        })

    self.__max_requests = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_max_requests(self):
    self.__max_requests = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="max-requests", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint16', is_config=False)


  def _get_server_fail_vlan(self):
    """
    Getter method for server_fail_vlan, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/dot1x/state/server_fail_vlan (union)

    YANG Description: If RADIUS is unresponsive, the supplicant shall be placed in
this VLAN. If this VLAN is configured as a VLAN name, the
vlan-map must be populated for the Authenticator to map this
VLAN name to a VLAN id.
    """
    return self.__server_fail_vlan
      
  def _set_server_fail_vlan(self, v, load=False):
    """
    Setter method for server_fail_vlan, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/dot1x/state/server_fail_vlan (union)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_server_fail_vlan is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_server_fail_vlan() directly.

    YANG Description: If RADIUS is unresponsive, the supplicant shall be placed in
this VLAN. If this VLAN is configured as a VLAN name, the
vlan-map must be populated for the Authenticator to map this
VLAN name to a VLAN id.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=[six.text_type,RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}),], is_leaf=True, yang_name="server-fail-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='union', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """server_fail_vlan must be of a type compatible with union""",
          'defined-type': "openconfig-ap-interfaces:union",
          'generated-type': """YANGDynClass(base=[six.text_type,RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}),], is_leaf=True, yang_name="server-fail-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='union', is_config=False)""",
        })

    self.__server_fail_vlan = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_server_fail_vlan(self):
    self.__server_fail_vlan = YANGDynClass(base=[six.text_type,RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}),], is_leaf=True, yang_name="server-fail-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='union', is_config=False)


  def _get_auth_fail_vlan(self):
    """
    Getter method for auth_fail_vlan, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/dot1x/state/auth_fail_vlan (union)

    YANG Description: Upon failure to authenticate, the port is set to this VLAN.
If this VLAN is a configured as a VLAN name, the vlan-map must
be populated for the Authenticator to map this VLAN name to a
VLAN id.
    """
    return self.__auth_fail_vlan
      
  def _set_auth_fail_vlan(self, v, load=False):
    """
    Setter method for auth_fail_vlan, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/dot1x/state/auth_fail_vlan (union)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_auth_fail_vlan is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_auth_fail_vlan() directly.

    YANG Description: Upon failure to authenticate, the port is set to this VLAN.
If this VLAN is a configured as a VLAN name, the vlan-map must
be populated for the Authenticator to map this VLAN name to a
VLAN id.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=[six.text_type,RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}),], is_leaf=True, yang_name="auth-fail-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='union', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """auth_fail_vlan must be of a type compatible with union""",
          'defined-type': "openconfig-ap-interfaces:union",
          'generated-type': """YANGDynClass(base=[six.text_type,RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}),], is_leaf=True, yang_name="auth-fail-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='union', is_config=False)""",
        })

    self.__auth_fail_vlan = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_auth_fail_vlan(self):
    self.__auth_fail_vlan = YANGDynClass(base=[six.text_type,RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}),], is_leaf=True, yang_name="auth-fail-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='union', is_config=False)

  authenticate_port = __builtin__.property(_get_authenticate_port)
  host_mode = __builtin__.property(_get_host_mode)
  reauthenticate_interval = __builtin__.property(_get_reauthenticate_interval)
  retransmit_interval = __builtin__.property(_get_retransmit_interval)
  supplicant_timeout = __builtin__.property(_get_supplicant_timeout)
  max_requests = __builtin__.property(_get_max_requests)
  server_fail_vlan = __builtin__.property(_get_server_fail_vlan)
  auth_fail_vlan = __builtin__.property(_get_auth_fail_vlan)


  _pyangbind_elements = OrderedDict([('authenticate_port', authenticate_port), ('host_mode', host_mode), ('reauthenticate_interval', reauthenticate_interval), ('retransmit_interval', retransmit_interval), ('supplicant_timeout', supplicant_timeout), ('max_requests', max_requests), ('server_fail_vlan', server_fail_vlan), ('auth_fail_vlan', auth_fail_vlan), ])


class yc_dot1x_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_dot1x(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/ethernet/dot1x. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Top level container for 802.1X configuration and
state data.
  """
  __slots__ = ('_path_helper', '_extmethods', '__config','__state',)

  _yang_name = 'dot1x'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_dot1x_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_dot1x_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'ethernet', 'dot1x']

  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/dot1x/config (container)

    YANG Description: Top level configuration container for 802.1X.
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/dot1x/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Top level configuration container for 802.1X.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_dot1x_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_dot1x_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_dot1x_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/dot1x/state (container)

    YANG Description: Top level state container for 802.1X.
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/dot1x/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: Top level state container for 802.1X.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_dot1x_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_dot1x_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_dot1x_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)


  _pyangbind_elements = OrderedDict([('config', config), ('state', state), ])


class yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_authenticated_sessions_authenticated_session_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/ethernet/authenticated-sessions/authenticated-session/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Top level state container for 802.1X.
  """
  __slots__ = ('_path_helper', '_extmethods', '__mac','__session_id','__status',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__mac = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="mac", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:mac-address', is_config=False)
    self.__session_id = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="session-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='string', is_config=False)
    self.__status = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'AUTHENTICATED': {}, 'AUTHENTICATING': {}, 'FAILED_AUTHENTICATION': {}, 'SUPPLICANT_TIMEOUT': {}},), is_leaf=True, yang_name="status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', 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 ['access-points', 'access-point', 'interfaces', 'interface', 'ethernet', 'authenticated-sessions', 'authenticated-session', 'state']

  def _get_mac(self):
    """
    Getter method for mac, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/authenticated_sessions/authenticated_session/state/mac (oc-yang:mac-address)

    YANG Description: Device MAC address.
    """
    return self.__mac
      
  def _set_mac(self, v, load=False):
    """
    Setter method for mac, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/authenticated_sessions/authenticated_session/state/mac (oc-yang:mac-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mac is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mac() directly.

    YANG Description: Device MAC address.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="mac", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:mac-address', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mac must be of a type compatible with oc-yang:mac-address""",
          'defined-type': "oc-yang:mac-address",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="mac", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:mac-address', is_config=False)""",
        })

    self.__mac = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mac(self):
    self.__mac = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="mac", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:mac-address', is_config=False)


  def _get_session_id(self):
    """
    Getter method for session_id, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/authenticated_sessions/authenticated_session/state/session_id (string)

    YANG Description: The locally-significant session id which this authenticated
session applies to. Typically used for RADIUS accounting or
other system level telemetry.
    """
    return self.__session_id
      
  def _set_session_id(self, v, load=False):
    """
    Setter method for session_id, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/authenticated_sessions/authenticated_session/state/session_id (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_session_id is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_session_id() directly.

    YANG Description: The locally-significant session id which this authenticated
session applies to. Typically used for RADIUS accounting or
other system level telemetry.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="session-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='string', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """session_id must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="session-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='string', is_config=False)""",
        })

    self.__session_id = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_session_id(self):
    self.__session_id = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="session-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='string', is_config=False)


  def _get_status(self):
    """
    Getter method for status, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/authenticated_sessions/authenticated_session/state/status (enumeration)

    YANG Description: The status of the 802.1X session for a device.
    """
    return self.__status
      
  def _set_status(self, v, load=False):
    """
    Setter method for status, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/authenticated_sessions/authenticated_session/state/status (enumeration)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_status is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_status() directly.

    YANG Description: The status of the 802.1X session for a device.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'AUTHENTICATED': {}, 'AUTHENTICATING': {}, 'FAILED_AUTHENTICATION': {}, 'SUPPLICANT_TIMEOUT': {}},), is_leaf=True, yang_name="status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """status must be of a type compatible with enumeration""",
          'defined-type': "openconfig-ap-interfaces:enumeration",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'AUTHENTICATED': {}, 'AUTHENTICATING': {}, 'FAILED_AUTHENTICATION': {}, 'SUPPLICANT_TIMEOUT': {}},), is_leaf=True, yang_name="status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', is_config=False)""",
        })

    self.__status = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_status(self):
    self.__status = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'AUTHENTICATED': {}, 'AUTHENTICATING': {}, 'FAILED_AUTHENTICATION': {}, 'SUPPLICANT_TIMEOUT': {}},), is_leaf=True, yang_name="status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', is_config=False)

  mac = __builtin__.property(_get_mac)
  session_id = __builtin__.property(_get_session_id)
  status = __builtin__.property(_get_status)


  _pyangbind_elements = OrderedDict([('mac', mac), ('session_id', session_id), ('status', status), ])


class yc_authenticated_session_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_authenticated_sessions_authenticated_session(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/ethernet/authenticated-sessions/authenticated-session. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: The list of authenticated sessions on this device.
  """
  __slots__ = ('_path_helper', '_extmethods', '__mac','__state',)

  _yang_name = 'authenticated-session'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__mac = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="mac", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=False)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_authenticated_sessions_authenticated_session_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/ap-interfaces', defining_module='openconfig-ap-interfaces', 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 ['access-points', 'access-point', 'interfaces', 'interface', 'ethernet', 'authenticated-sessions', 'authenticated-session']

  def _get_mac(self):
    """
    Getter method for mac, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/authenticated_sessions/authenticated_session/mac (leafref)

    YANG Description: Device MAC address.
    """
    return self.__mac
      
  def _set_mac(self, v, load=False):
    """
    Setter method for mac, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/authenticated_sessions/authenticated_session/mac (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mac is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mac() directly.

    YANG Description: Device MAC address.
    """
    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="mac", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mac must be of a type compatible with leafref""",
          'defined-type': "leafref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="mac", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=False)""",
        })

    self.__mac = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mac(self):
    self.__mac = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="mac", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=False)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/authenticated_sessions/authenticated_session/state (container)

    YANG Description: Top level state container for 802.1X.
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/authenticated_sessions/authenticated_session/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: Top level state container for 802.1X.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_authenticated_sessions_authenticated_session_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/ap-interfaces', defining_module='openconfig-ap-interfaces', 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=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_authenticated_sessions_authenticated_session_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=False)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_authenticated_sessions_authenticated_session_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=False)

  mac = __builtin__.property(_get_mac)
  state = __builtin__.property(_get_state)


  _pyangbind_elements = OrderedDict([('mac', mac), ('state', state), ])


class yc_authenticated_sessions_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_authenticated_sessions(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/ethernet/authenticated-sessions. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Top level container for authenticated sessions state data.
  """
  __slots__ = ('_path_helper', '_extmethods', '__authenticated_session',)

  _yang_name = 'authenticated-sessions'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__authenticated_session = YANGDynClass(base=YANGListType("mac",yc_authenticated_session_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_authenticated_sessions_authenticated_session, yang_name="authenticated-session", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='mac', extensions=None), is_container='list', yang_name="authenticated-session", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='list', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'ethernet', 'authenticated-sessions']

  def _get_authenticated_session(self):
    """
    Getter method for authenticated_session, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/authenticated_sessions/authenticated_session (list)

    YANG Description: The list of authenticated sessions on this device.
    """
    return self.__authenticated_session
      
  def _set_authenticated_session(self, v, load=False):
    """
    Setter method for authenticated_session, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/authenticated_sessions/authenticated_session (list)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_authenticated_session is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_authenticated_session() directly.

    YANG Description: The list of authenticated sessions on this device.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGListType("mac",yc_authenticated_session_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_authenticated_sessions_authenticated_session, yang_name="authenticated-session", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='mac', extensions=None), is_container='list', yang_name="authenticated-session", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='list', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """authenticated_session must be of a type compatible with list""",
          'defined-type': "list",
          'generated-type': """YANGDynClass(base=YANGListType("mac",yc_authenticated_session_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_authenticated_sessions_authenticated_session, yang_name="authenticated-session", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='mac', extensions=None), is_container='list', yang_name="authenticated-session", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='list', is_config=True)""",
        })

    self.__authenticated_session = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_authenticated_session(self):
    self.__authenticated_session = YANGDynClass(base=YANGListType("mac",yc_authenticated_session_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_authenticated_sessions_authenticated_session, yang_name="authenticated-session", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='mac', extensions=None), is_container='list', yang_name="authenticated-session", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='list', is_config=True)

  authenticated_session = __builtin__.property(_get_authenticated_session, _set_authenticated_session)


  _pyangbind_elements = OrderedDict([('authenticated_session', authenticated_session), ])


class yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_switched_vlan_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/ethernet/switched-vlan/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Configuration parameters for VLANs
  """
  __slots__ = ('_path_helper', '_extmethods', '__interface_mode','__native_vlan','__access_vlan','__trunk_vlans',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__interface_mode = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'ACCESS': {}, 'TRUNK': {}},), is_leaf=True, yang_name="interface-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-vlan-types:vlan-mode-type', is_config=True)
    self.__native_vlan = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}), is_leaf=True, yang_name="native-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-vlan-types:vlan-id', is_config=True)
    self.__access_vlan = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}), is_leaf=True, yang_name="access-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-vlan-types:vlan-id', is_config=True)
    self.__trunk_vlans = YANGDynClass(unique=True, base=TypedListType(allowed_type=[RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|[1-9])\\.\\.(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|[1-9])'}),]), is_leaf=False, yang_name="trunk-vlans", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='union', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'ethernet', 'switched-vlan', 'config']

  def _get_interface_mode(self):
    """
    Getter method for interface_mode, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/switched_vlan/config/interface_mode (oc-vlan-types:vlan-mode-type)

    YANG Description: Set the interface to access or trunk mode for
VLANs
    """
    return self.__interface_mode
      
  def _set_interface_mode(self, v, load=False):
    """
    Setter method for interface_mode, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/switched_vlan/config/interface_mode (oc-vlan-types:vlan-mode-type)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_interface_mode is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_interface_mode() directly.

    YANG Description: Set the interface to access or trunk mode for
VLANs
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'ACCESS': {}, 'TRUNK': {}},), is_leaf=True, yang_name="interface-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-vlan-types:vlan-mode-type', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """interface_mode must be of a type compatible with oc-vlan-types:vlan-mode-type""",
          'defined-type': "oc-vlan-types:vlan-mode-type",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'ACCESS': {}, 'TRUNK': {}},), is_leaf=True, yang_name="interface-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-vlan-types:vlan-mode-type', is_config=True)""",
        })

    self.__interface_mode = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_interface_mode(self):
    self.__interface_mode = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'ACCESS': {}, 'TRUNK': {}},), is_leaf=True, yang_name="interface-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-vlan-types:vlan-mode-type', is_config=True)


  def _get_native_vlan(self):
    """
    Getter method for native_vlan, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/switched_vlan/config/native_vlan (oc-vlan-types:vlan-id)

    YANG Description: Set the native VLAN id for untagged frames arriving on
a trunk interface.  Tagged frames sent on an interface
configured with a native VLAN should have their tags
stripped prior to transmission. This configuration is only
valid on a trunk interface.
    """
    return self.__native_vlan
      
  def _set_native_vlan(self, v, load=False):
    """
    Setter method for native_vlan, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/switched_vlan/config/native_vlan (oc-vlan-types:vlan-id)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_native_vlan is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_native_vlan() directly.

    YANG Description: Set the native VLAN id for untagged frames arriving on
a trunk interface.  Tagged frames sent on an interface
configured with a native VLAN should have their tags
stripped prior to transmission. This configuration is only
valid on a trunk interface.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}), is_leaf=True, yang_name="native-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-vlan-types:vlan-id', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """native_vlan must be of a type compatible with oc-vlan-types:vlan-id""",
          'defined-type': "oc-vlan-types:vlan-id",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}), is_leaf=True, yang_name="native-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-vlan-types:vlan-id', is_config=True)""",
        })

    self.__native_vlan = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_native_vlan(self):
    self.__native_vlan = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}), is_leaf=True, yang_name="native-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-vlan-types:vlan-id', is_config=True)


  def _get_access_vlan(self):
    """
    Getter method for access_vlan, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/switched_vlan/config/access_vlan (oc-vlan-types:vlan-id)

    YANG Description: Assign the access vlan to the access port.
    """
    return self.__access_vlan
      
  def _set_access_vlan(self, v, load=False):
    """
    Setter method for access_vlan, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/switched_vlan/config/access_vlan (oc-vlan-types:vlan-id)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_access_vlan is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_access_vlan() directly.

    YANG Description: Assign the access vlan to the access port.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}), is_leaf=True, yang_name="access-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-vlan-types:vlan-id', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """access_vlan must be of a type compatible with oc-vlan-types:vlan-id""",
          'defined-type': "oc-vlan-types:vlan-id",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}), is_leaf=True, yang_name="access-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-vlan-types:vlan-id', is_config=True)""",
        })

    self.__access_vlan = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_access_vlan(self):
    self.__access_vlan = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}), is_leaf=True, yang_name="access-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-vlan-types:vlan-id', is_config=True)


  def _get_trunk_vlans(self):
    """
    Getter method for trunk_vlans, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/switched_vlan/config/trunk_vlans (union)

    YANG Description: Specify VLANs, or ranges thereof, that the interface may
carry when in trunk mode.  If not specified, all VLANs are
allowed on the interface. Ranges are specified in the form
x..y, where x<y - ranges are assumed to be inclusive (such
that the VLAN range is x <= range <= y.
    """
    return self.__trunk_vlans
      
  def _set_trunk_vlans(self, v, load=False):
    """
    Setter method for trunk_vlans, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/switched_vlan/config/trunk_vlans (union)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_trunk_vlans is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_trunk_vlans() directly.

    YANG Description: Specify VLANs, or ranges thereof, that the interface may
carry when in trunk mode.  If not specified, all VLANs are
allowed on the interface. Ranges are specified in the form
x..y, where x<y - ranges are assumed to be inclusive (such
that the VLAN range is x <= range <= y.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=[RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|[1-9])\\.\\.(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|[1-9])'}),]), is_leaf=False, yang_name="trunk-vlans", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='union', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """trunk_vlans must be of a type compatible with union""",
          'defined-type': "openconfig-ap-interfaces:union",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=[RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|[1-9])\\.\\.(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|[1-9])'}),]), is_leaf=False, yang_name="trunk-vlans", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='union', is_config=True)""",
        })

    self.__trunk_vlans = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_trunk_vlans(self):
    self.__trunk_vlans = YANGDynClass(unique=True, base=TypedListType(allowed_type=[RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|[1-9])\\.\\.(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|[1-9])'}),]), is_leaf=False, yang_name="trunk-vlans", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='union', is_config=True)

  interface_mode = __builtin__.property(_get_interface_mode, _set_interface_mode)
  native_vlan = __builtin__.property(_get_native_vlan, _set_native_vlan)
  access_vlan = __builtin__.property(_get_access_vlan, _set_access_vlan)
  trunk_vlans = __builtin__.property(_get_trunk_vlans, _set_trunk_vlans)


  _pyangbind_elements = OrderedDict([('interface_mode', interface_mode), ('native_vlan', native_vlan), ('access_vlan', access_vlan), ('trunk_vlans', trunk_vlans), ])


class yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_switched_vlan_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/ethernet/switched-vlan/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: State variables for VLANs
  """
  __slots__ = ('_path_helper', '_extmethods', '__interface_mode','__native_vlan','__access_vlan','__trunk_vlans',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__interface_mode = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'ACCESS': {}, 'TRUNK': {}},), is_leaf=True, yang_name="interface-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-vlan-types:vlan-mode-type', is_config=False)
    self.__native_vlan = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}), is_leaf=True, yang_name="native-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-vlan-types:vlan-id', is_config=False)
    self.__access_vlan = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}), is_leaf=True, yang_name="access-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-vlan-types:vlan-id', is_config=False)
    self.__trunk_vlans = YANGDynClass(unique=True, base=TypedListType(allowed_type=[RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|[1-9])\\.\\.(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|[1-9])'}),]), is_leaf=False, yang_name="trunk-vlans", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='union', 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 ['access-points', 'access-point', 'interfaces', 'interface', 'ethernet', 'switched-vlan', 'state']

  def _get_interface_mode(self):
    """
    Getter method for interface_mode, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/switched_vlan/state/interface_mode (oc-vlan-types:vlan-mode-type)

    YANG Description: Set the interface to access or trunk mode for
VLANs
    """
    return self.__interface_mode
      
  def _set_interface_mode(self, v, load=False):
    """
    Setter method for interface_mode, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/switched_vlan/state/interface_mode (oc-vlan-types:vlan-mode-type)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_interface_mode is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_interface_mode() directly.

    YANG Description: Set the interface to access or trunk mode for
VLANs
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'ACCESS': {}, 'TRUNK': {}},), is_leaf=True, yang_name="interface-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-vlan-types:vlan-mode-type', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """interface_mode must be of a type compatible with oc-vlan-types:vlan-mode-type""",
          'defined-type': "oc-vlan-types:vlan-mode-type",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'ACCESS': {}, 'TRUNK': {}},), is_leaf=True, yang_name="interface-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-vlan-types:vlan-mode-type', is_config=False)""",
        })

    self.__interface_mode = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_interface_mode(self):
    self.__interface_mode = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'ACCESS': {}, 'TRUNK': {}},), is_leaf=True, yang_name="interface-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-vlan-types:vlan-mode-type', is_config=False)


  def _get_native_vlan(self):
    """
    Getter method for native_vlan, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/switched_vlan/state/native_vlan (oc-vlan-types:vlan-id)

    YANG Description: Set the native VLAN id for untagged frames arriving on
a trunk interface.  Tagged frames sent on an interface
configured with a native VLAN should have their tags
stripped prior to transmission. This configuration is only
valid on a trunk interface.
    """
    return self.__native_vlan
      
  def _set_native_vlan(self, v, load=False):
    """
    Setter method for native_vlan, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/switched_vlan/state/native_vlan (oc-vlan-types:vlan-id)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_native_vlan is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_native_vlan() directly.

    YANG Description: Set the native VLAN id for untagged frames arriving on
a trunk interface.  Tagged frames sent on an interface
configured with a native VLAN should have their tags
stripped prior to transmission. This configuration is only
valid on a trunk interface.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}), is_leaf=True, yang_name="native-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-vlan-types:vlan-id', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """native_vlan must be of a type compatible with oc-vlan-types:vlan-id""",
          'defined-type': "oc-vlan-types:vlan-id",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}), is_leaf=True, yang_name="native-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-vlan-types:vlan-id', is_config=False)""",
        })

    self.__native_vlan = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_native_vlan(self):
    self.__native_vlan = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}), is_leaf=True, yang_name="native-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-vlan-types:vlan-id', is_config=False)


  def _get_access_vlan(self):
    """
    Getter method for access_vlan, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/switched_vlan/state/access_vlan (oc-vlan-types:vlan-id)

    YANG Description: Assign the access vlan to the access port.
    """
    return self.__access_vlan
      
  def _set_access_vlan(self, v, load=False):
    """
    Setter method for access_vlan, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/switched_vlan/state/access_vlan (oc-vlan-types:vlan-id)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_access_vlan is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_access_vlan() directly.

    YANG Description: Assign the access vlan to the access port.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}), is_leaf=True, yang_name="access-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-vlan-types:vlan-id', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """access_vlan must be of a type compatible with oc-vlan-types:vlan-id""",
          'defined-type': "oc-vlan-types:vlan-id",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}), is_leaf=True, yang_name="access-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-vlan-types:vlan-id', is_config=False)""",
        })

    self.__access_vlan = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_access_vlan(self):
    self.__access_vlan = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}), is_leaf=True, yang_name="access-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-vlan-types:vlan-id', is_config=False)


  def _get_trunk_vlans(self):
    """
    Getter method for trunk_vlans, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/switched_vlan/state/trunk_vlans (union)

    YANG Description: Specify VLANs, or ranges thereof, that the interface may
carry when in trunk mode.  If not specified, all VLANs are
allowed on the interface. Ranges are specified in the form
x..y, where x<y - ranges are assumed to be inclusive (such
that the VLAN range is x <= range <= y.
    """
    return self.__trunk_vlans
      
  def _set_trunk_vlans(self, v, load=False):
    """
    Setter method for trunk_vlans, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/switched_vlan/state/trunk_vlans (union)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_trunk_vlans is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_trunk_vlans() directly.

    YANG Description: Specify VLANs, or ranges thereof, that the interface may
carry when in trunk mode.  If not specified, all VLANs are
allowed on the interface. Ranges are specified in the form
x..y, where x<y - ranges are assumed to be inclusive (such
that the VLAN range is x <= range <= y.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=[RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|[1-9])\\.\\.(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|[1-9])'}),]), is_leaf=False, yang_name="trunk-vlans", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='union', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """trunk_vlans must be of a type compatible with union""",
          'defined-type': "openconfig-ap-interfaces:union",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=[RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|[1-9])\\.\\.(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|[1-9])'}),]), is_leaf=False, yang_name="trunk-vlans", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='union', is_config=False)""",
        })

    self.__trunk_vlans = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_trunk_vlans(self):
    self.__trunk_vlans = YANGDynClass(unique=True, base=TypedListType(allowed_type=[RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|[1-9])\\.\\.(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|[1-9])'}),]), is_leaf=False, yang_name="trunk-vlans", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='union', is_config=False)

  interface_mode = __builtin__.property(_get_interface_mode)
  native_vlan = __builtin__.property(_get_native_vlan)
  access_vlan = __builtin__.property(_get_access_vlan)
  trunk_vlans = __builtin__.property(_get_trunk_vlans)


  _pyangbind_elements = OrderedDict([('interface_mode', interface_mode), ('native_vlan', native_vlan), ('access_vlan', access_vlan), ('trunk_vlans', trunk_vlans), ])


class yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_switched_vlan_dot1x_vlan_map_vlan_name_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/ethernet/switched-vlan/dot1x-vlan-map/vlan-name/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Configuration data for each configured VLAN
name in the VLAN ID to VLAN name mapping
  """
  __slots__ = ('_path_helper', '_extmethods', '__vlan_name','__id',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__vlan_name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="vlan-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='string', is_config=True)
    self.__id = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}), is_leaf=True, yang_name="id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-vlan-types:vlan-id', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'ethernet', 'switched-vlan', 'dot1x-vlan-map', 'vlan-name', 'config']

  def _get_vlan_name(self):
    """
    Getter method for vlan_name, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/switched_vlan/dot1x_vlan_map/vlan_name/config/vlan_name (string)

    YANG Description: The VLAN name to be mapped to the VLAN id.
    """
    return self.__vlan_name
      
  def _set_vlan_name(self, v, load=False):
    """
    Setter method for vlan_name, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/switched_vlan/dot1x_vlan_map/vlan_name/config/vlan_name (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_vlan_name is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_vlan_name() directly.

    YANG Description: The VLAN name to be mapped to the VLAN id.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="vlan-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='string', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """vlan_name must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="vlan-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='string', is_config=True)""",
        })

    self.__vlan_name = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_vlan_name(self):
    self.__vlan_name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="vlan-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='string', is_config=True)


  def _get_id(self):
    """
    Getter method for id, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/switched_vlan/dot1x_vlan_map/vlan_name/config/id (oc-vlan-types:vlan-id)

    YANG Description: The VLAN id to be mapped to the VLAN name.
    """
    return self.__id
      
  def _set_id(self, v, load=False):
    """
    Setter method for id, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/switched_vlan/dot1x_vlan_map/vlan_name/config/id (oc-vlan-types:vlan-id)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_id is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_id() directly.

    YANG Description: The VLAN id to be mapped to the VLAN name.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}), is_leaf=True, yang_name="id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-vlan-types:vlan-id', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """id must be of a type compatible with oc-vlan-types:vlan-id""",
          'defined-type': "oc-vlan-types:vlan-id",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}), is_leaf=True, yang_name="id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-vlan-types:vlan-id', is_config=True)""",
        })

    self.__id = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_id(self):
    self.__id = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}), is_leaf=True, yang_name="id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-vlan-types:vlan-id', is_config=True)

  vlan_name = __builtin__.property(_get_vlan_name, _set_vlan_name)
  id = __builtin__.property(_get_id, _set_id)


  _pyangbind_elements = OrderedDict([('vlan_name', vlan_name), ('id', id), ])


class yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_switched_vlan_dot1x_vlan_map_vlan_name_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/ethernet/switched-vlan/dot1x-vlan-map/vlan-name/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Operational state data for each VLAN id
to VLAN name mapping.
  """
  __slots__ = ('_path_helper', '_extmethods', '__vlan_name','__id',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__vlan_name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="vlan-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='string', is_config=False)
    self.__id = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}), is_leaf=True, yang_name="id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-vlan-types:vlan-id', 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 ['access-points', 'access-point', 'interfaces', 'interface', 'ethernet', 'switched-vlan', 'dot1x-vlan-map', 'vlan-name', 'state']

  def _get_vlan_name(self):
    """
    Getter method for vlan_name, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/switched_vlan/dot1x_vlan_map/vlan_name/state/vlan_name (string)

    YANG Description: The VLAN name to be mapped to the VLAN id.
    """
    return self.__vlan_name
      
  def _set_vlan_name(self, v, load=False):
    """
    Setter method for vlan_name, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/switched_vlan/dot1x_vlan_map/vlan_name/state/vlan_name (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_vlan_name is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_vlan_name() directly.

    YANG Description: The VLAN name to be mapped to the VLAN id.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="vlan-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='string', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """vlan_name must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="vlan-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='string', is_config=False)""",
        })

    self.__vlan_name = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_vlan_name(self):
    self.__vlan_name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="vlan-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='string', is_config=False)


  def _get_id(self):
    """
    Getter method for id, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/switched_vlan/dot1x_vlan_map/vlan_name/state/id (oc-vlan-types:vlan-id)

    YANG Description: The VLAN id to be mapped to the VLAN name.
    """
    return self.__id
      
  def _set_id(self, v, load=False):
    """
    Setter method for id, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/switched_vlan/dot1x_vlan_map/vlan_name/state/id (oc-vlan-types:vlan-id)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_id is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_id() directly.

    YANG Description: The VLAN id to be mapped to the VLAN name.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}), is_leaf=True, yang_name="id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-vlan-types:vlan-id', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """id must be of a type compatible with oc-vlan-types:vlan-id""",
          'defined-type': "oc-vlan-types:vlan-id",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}), is_leaf=True, yang_name="id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-vlan-types:vlan-id', is_config=False)""",
        })

    self.__id = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_id(self):
    self.__id = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}), is_leaf=True, yang_name="id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-vlan-types:vlan-id', is_config=False)

  vlan_name = __builtin__.property(_get_vlan_name)
  id = __builtin__.property(_get_id)


  _pyangbind_elements = OrderedDict([('vlan_name', vlan_name), ('id', id), ])


class yc_vlan_name_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_switched_vlan_dot1x_vlan_map_vlan_name(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/ethernet/switched-vlan/dot1x-vlan-map/vlan-name. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: A list of mappings from VLAN name to VLAN id.
Entries in this list are utilized for DVA using a VLAN
name; eg when RADIUS returns a VLAN name as the
tunnel-private-group-id.
  """
  __slots__ = ('_path_helper', '_extmethods', '__vlan_name','__config','__state',)

  _yang_name = 'vlan-name'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__vlan_name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="vlan-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_switched_vlan_dot1x_vlan_map_vlan_name_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_switched_vlan_dot1x_vlan_map_vlan_name_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'ethernet', 'switched-vlan', 'dot1x-vlan-map', 'vlan-name']

  def _get_vlan_name(self):
    """
    Getter method for vlan_name, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/switched_vlan/dot1x_vlan_map/vlan_name/vlan_name (leafref)

    YANG Description: References the configured VLAN name
    """
    return self.__vlan_name
      
  def _set_vlan_name(self, v, load=False):
    """
    Setter method for vlan_name, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/switched_vlan/dot1x_vlan_map/vlan_name/vlan_name (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_vlan_name is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_vlan_name() directly.

    YANG Description: References the configured VLAN name
    """
    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="vlan-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """vlan_name must be of a type compatible with leafref""",
          'defined-type': "leafref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="vlan-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)""",
        })

    self.__vlan_name = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_vlan_name(self):
    self.__vlan_name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="vlan-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)


  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/switched_vlan/dot1x_vlan_map/vlan_name/config (container)

    YANG Description: Configuration data for each configured VLAN
name in the VLAN ID to VLAN name mapping
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/switched_vlan/dot1x_vlan_map/vlan_name/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Configuration data for each configured VLAN
name in the VLAN ID to VLAN name mapping
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_switched_vlan_dot1x_vlan_map_vlan_name_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_switched_vlan_dot1x_vlan_map_vlan_name_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_switched_vlan_dot1x_vlan_map_vlan_name_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/switched_vlan/dot1x_vlan_map/vlan_name/state (container)

    YANG Description: Operational state data for each VLAN id
to VLAN name mapping.
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/switched_vlan/dot1x_vlan_map/vlan_name/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: Operational state data for each VLAN id
to VLAN name mapping.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_switched_vlan_dot1x_vlan_map_vlan_name_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_switched_vlan_dot1x_vlan_map_vlan_name_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_switched_vlan_dot1x_vlan_map_vlan_name_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

  vlan_name = __builtin__.property(_get_vlan_name, _set_vlan_name)
  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)


  _pyangbind_elements = OrderedDict([('vlan_name', vlan_name), ('config', config), ('state', state), ])


class yc_dot1x_vlan_map_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_switched_vlan_dot1x_vlan_map(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/ethernet/switched-vlan/dot1x-vlan-map. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Enclosing container for mapping a VLAN name to VLAN id
  """
  __slots__ = ('_path_helper', '_extmethods', '__vlan_name',)

  _yang_name = 'dot1x-vlan-map'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__vlan_name = YANGDynClass(base=YANGListType("vlan_name",yc_vlan_name_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_switched_vlan_dot1x_vlan_map_vlan_name, yang_name="vlan-name", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='vlan-name', extensions=None), is_container='list', yang_name="vlan-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='list', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'ethernet', 'switched-vlan', 'dot1x-vlan-map']

  def _get_vlan_name(self):
    """
    Getter method for vlan_name, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/switched_vlan/dot1x_vlan_map/vlan_name (list)

    YANG Description: A list of mappings from VLAN name to VLAN id.
Entries in this list are utilized for DVA using a VLAN
name; eg when RADIUS returns a VLAN name as the
tunnel-private-group-id.
    """
    return self.__vlan_name
      
  def _set_vlan_name(self, v, load=False):
    """
    Setter method for vlan_name, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/switched_vlan/dot1x_vlan_map/vlan_name (list)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_vlan_name is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_vlan_name() directly.

    YANG Description: A list of mappings from VLAN name to VLAN id.
Entries in this list are utilized for DVA using a VLAN
name; eg when RADIUS returns a VLAN name as the
tunnel-private-group-id.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGListType("vlan_name",yc_vlan_name_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_switched_vlan_dot1x_vlan_map_vlan_name, yang_name="vlan-name", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='vlan-name', extensions=None), is_container='list', yang_name="vlan-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='list', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """vlan_name must be of a type compatible with list""",
          'defined-type': "list",
          'generated-type': """YANGDynClass(base=YANGListType("vlan_name",yc_vlan_name_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_switched_vlan_dot1x_vlan_map_vlan_name, yang_name="vlan-name", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='vlan-name', extensions=None), is_container='list', yang_name="vlan-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='list', is_config=True)""",
        })

    self.__vlan_name = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_vlan_name(self):
    self.__vlan_name = YANGDynClass(base=YANGListType("vlan_name",yc_vlan_name_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_switched_vlan_dot1x_vlan_map_vlan_name, yang_name="vlan-name", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='vlan-name', extensions=None), is_container='list', yang_name="vlan-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='list', is_config=True)

  vlan_name = __builtin__.property(_get_vlan_name, _set_vlan_name)


  _pyangbind_elements = OrderedDict([('vlan_name', vlan_name), ])


class yc_switched_vlan_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_switched_vlan(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/ethernet/switched-vlan. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Enclosing container for VLAN interface-specific
data on Ethernet interfaces.  These are for standard
L2, switched-style VLANs.
  """
  __slots__ = ('_path_helper', '_extmethods', '__config','__state','__dot1x_vlan_map',)

  _yang_name = 'switched-vlan'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_switched_vlan_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_switched_vlan_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__dot1x_vlan_map = YANGDynClass(base=yc_dot1x_vlan_map_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_switched_vlan_dot1x_vlan_map, is_container='container', yang_name="dot1x-vlan-map", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'ethernet', 'switched-vlan']

  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/switched_vlan/config (container)

    YANG Description: Configuration parameters for VLANs
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/switched_vlan/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

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

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_switched_vlan_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/switched_vlan/state (container)

    YANG Description: State variables for VLANs
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/switched_vlan/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 variables for VLANs
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_switched_vlan_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_switched_vlan_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_switched_vlan_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_dot1x_vlan_map(self):
    """
    Getter method for dot1x_vlan_map, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/switched_vlan/dot1x_vlan_map (container)

    YANG Description: Enclosing container for mapping a VLAN name to VLAN id
    """
    return self.__dot1x_vlan_map
      
  def _set_dot1x_vlan_map(self, v, load=False):
    """
    Setter method for dot1x_vlan_map, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/switched_vlan/dot1x_vlan_map (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dot1x_vlan_map is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dot1x_vlan_map() directly.

    YANG Description: Enclosing container for mapping a VLAN name to VLAN id
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_dot1x_vlan_map_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_switched_vlan_dot1x_vlan_map, is_container='container', yang_name="dot1x-vlan-map", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dot1x_vlan_map must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_dot1x_vlan_map_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_switched_vlan_dot1x_vlan_map, is_container='container', yang_name="dot1x-vlan-map", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

    self.__dot1x_vlan_map = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dot1x_vlan_map(self):
    self.__dot1x_vlan_map = YANGDynClass(base=yc_dot1x_vlan_map_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_switched_vlan_dot1x_vlan_map, is_container='container', yang_name="dot1x-vlan-map", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)
  dot1x_vlan_map = __builtin__.property(_get_dot1x_vlan_map, _set_dot1x_vlan_map)


  _pyangbind_elements = OrderedDict([('config', config), ('state', state), ('dot1x_vlan_map', dot1x_vlan_map), ])


class yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_poe_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/ethernet/poe/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Configuration data for PoE
  """
  __slots__ = ('_path_helper', '_extmethods', '__enabled',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'ethernet', 'poe', 'config']

  def _get_enabled(self):
    """
    Getter method for enabled, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/poe/config/enabled (boolean)

    YANG Description: Enable or disable PoE in the ethernet interface.
    """
    return self.__enabled
      
  def _set_enabled(self, v, load=False):
    """
    Setter method for enabled, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/poe/config/enabled (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_enabled is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_enabled() directly.

    YANG Description: Enable or disable PoE in the ethernet interface.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """enabled must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)""",
        })

    self.__enabled = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_enabled(self):
    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)

  enabled = __builtin__.property(_get_enabled, _set_enabled)


  _pyangbind_elements = OrderedDict([('enabled', enabled), ])


class yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_poe_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/ethernet/poe/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Operational state data for PoE
  """
  __slots__ = ('_path_helper', '_extmethods', '__enabled','__power_used','__power_class',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)
    self.__power_used = YANGDynClass(base=RestrictedPrecisionDecimalType(precision=2), is_leaf=True, yang_name="power-used", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='decimal64', is_config=False)
    self.__power_class = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="power-class", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint8', 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 ['access-points', 'access-point', 'interfaces', 'interface', 'ethernet', 'poe', 'state']

  def _get_enabled(self):
    """
    Getter method for enabled, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/poe/state/enabled (boolean)

    YANG Description: Enable or disable PoE in the ethernet interface.
    """
    return self.__enabled
      
  def _set_enabled(self, v, load=False):
    """
    Setter method for enabled, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/poe/state/enabled (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_enabled is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_enabled() directly.

    YANG Description: Enable or disable PoE in the ethernet interface.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """enabled must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)""",
        })

    self.__enabled = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_enabled(self):
    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)


  def _get_power_used(self):
    """
    Getter method for power_used, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/poe/state/power_used (decimal64)

    YANG Description: Power used by the ethernet interface in Watts.
    """
    return self.__power_used
      
  def _set_power_used(self, v, load=False):
    """
    Setter method for power_used, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/poe/state/power_used (decimal64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_power_used is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_power_used() directly.

    YANG Description: Power used by the ethernet interface in Watts.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedPrecisionDecimalType(precision=2), is_leaf=True, yang_name="power-used", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='decimal64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """power_used must be of a type compatible with decimal64""",
          'defined-type': "decimal64",
          'generated-type': """YANGDynClass(base=RestrictedPrecisionDecimalType(precision=2), is_leaf=True, yang_name="power-used", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='decimal64', is_config=False)""",
        })

    self.__power_used = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_power_used(self):
    self.__power_used = YANGDynClass(base=RestrictedPrecisionDecimalType(precision=2), is_leaf=True, yang_name="power-used", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='decimal64', is_config=False)


  def _get_power_class(self):
    """
    Getter method for power_class, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/poe/state/power_class (uint8)

    YANG Description: IEEE 802.3af Power class detected for this ethernet
interface.
    """
    return self.__power_class
      
  def _set_power_class(self, v, load=False):
    """
    Setter method for power_class, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/poe/state/power_class (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_power_class is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_power_class() directly.

    YANG Description: IEEE 802.3af Power class detected for this ethernet
interface.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="power-class", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """power_class must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="power-class", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint8', is_config=False)""",
        })

    self.__power_class = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_power_class(self):
    self.__power_class = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="power-class", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint8', is_config=False)

  enabled = __builtin__.property(_get_enabled)
  power_used = __builtin__.property(_get_power_used)
  power_class = __builtin__.property(_get_power_class)


  _pyangbind_elements = OrderedDict([('enabled', enabled), ('power_used', power_used), ('power_class', power_class), ])


class yc_poe_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_poe(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/ethernet/poe. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Top-level container for PoE configuration and state data
  """
  __slots__ = ('_path_helper', '_extmethods', '__config','__state',)

  _yang_name = 'poe'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_poe_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_poe_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'ethernet', 'poe']

  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/poe/config (container)

    YANG Description: Configuration data for PoE
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/poe/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Configuration data for PoE
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_poe_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_poe_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_poe_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/poe/state (container)

    YANG Description: Operational state data for PoE
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/poe/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: Operational state data for PoE
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_poe_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_poe_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_poe_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)


  _pyangbind_elements = OrderedDict([('config', config), ('state', state), ])


class yc_ethernet_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/ethernet. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Top-level container for ethernet configuration
and state
  """
  __slots__ = ('_path_helper', '_extmethods', '__config','__state','__dot1x','__authenticated_sessions','__switched_vlan','__poe',)

  _yang_name = 'ethernet'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__dot1x = YANGDynClass(base=yc_dot1x_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_dot1x, is_container='container', yang_name="dot1x", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__authenticated_sessions = YANGDynClass(base=yc_authenticated_sessions_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_authenticated_sessions, is_container='container', yang_name="authenticated-sessions", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__switched_vlan = YANGDynClass(base=yc_switched_vlan_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_switched_vlan, is_container='container', yang_name="switched-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__poe = YANGDynClass(base=yc_poe_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_poe, is_container='container', yang_name="poe", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'ethernet']

  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/config (container)

    YANG Description: Configuration data for ethernet interfaces
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Configuration data for ethernet interfaces
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/state (container)

    YANG Description: State variables for Ethernet interfaces
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/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 variables for Ethernet interfaces
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_dot1x(self):
    """
    Getter method for dot1x, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/dot1x (container)

    YANG Description: Top level container for 802.1X configuration and
state data.
    """
    return self.__dot1x
      
  def _set_dot1x(self, v, load=False):
    """
    Setter method for dot1x, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/dot1x (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dot1x is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dot1x() directly.

    YANG Description: Top level container for 802.1X configuration and
state data.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_dot1x_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_dot1x, is_container='container', yang_name="dot1x", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dot1x must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_dot1x_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_dot1x, is_container='container', yang_name="dot1x", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

    self.__dot1x = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dot1x(self):
    self.__dot1x = YANGDynClass(base=yc_dot1x_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_dot1x, is_container='container', yang_name="dot1x", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_authenticated_sessions(self):
    """
    Getter method for authenticated_sessions, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/authenticated_sessions (container)

    YANG Description: Top level container for authenticated sessions state data.
    """
    return self.__authenticated_sessions
      
  def _set_authenticated_sessions(self, v, load=False):
    """
    Setter method for authenticated_sessions, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/authenticated_sessions (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_authenticated_sessions is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_authenticated_sessions() directly.

    YANG Description: Top level container for authenticated sessions state data.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_authenticated_sessions_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_authenticated_sessions, is_container='container', yang_name="authenticated-sessions", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """authenticated_sessions must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_authenticated_sessions_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_authenticated_sessions, is_container='container', yang_name="authenticated-sessions", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

    self.__authenticated_sessions = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_authenticated_sessions(self):
    self.__authenticated_sessions = YANGDynClass(base=yc_authenticated_sessions_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_authenticated_sessions, is_container='container', yang_name="authenticated-sessions", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_switched_vlan(self):
    """
    Getter method for switched_vlan, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/switched_vlan (container)

    YANG Description: Enclosing container for VLAN interface-specific
data on Ethernet interfaces.  These are for standard
L2, switched-style VLANs.
    """
    return self.__switched_vlan
      
  def _set_switched_vlan(self, v, load=False):
    """
    Setter method for switched_vlan, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/switched_vlan (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_switched_vlan is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_switched_vlan() directly.

    YANG Description: Enclosing container for VLAN interface-specific
data on Ethernet interfaces.  These are for standard
L2, switched-style VLANs.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_switched_vlan_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_switched_vlan, is_container='container', yang_name="switched-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """switched_vlan must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_switched_vlan_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_switched_vlan, is_container='container', yang_name="switched-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

    self.__switched_vlan = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_switched_vlan(self):
    self.__switched_vlan = YANGDynClass(base=yc_switched_vlan_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_switched_vlan, is_container='container', yang_name="switched-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_poe(self):
    """
    Getter method for poe, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/poe (container)

    YANG Description: Top-level container for PoE configuration and state data
    """
    return self.__poe
      
  def _set_poe(self, v, load=False):
    """
    Setter method for poe, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet/poe (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_poe is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_poe() directly.

    YANG Description: Top-level container for PoE configuration and state data
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_poe_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_poe, is_container='container', yang_name="poe", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """poe must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_poe_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_poe, is_container='container', yang_name="poe", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

    self.__poe = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_poe(self):
    self.__poe = YANGDynClass(base=yc_poe_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet_poe, is_container='container', yang_name="poe", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)
  dot1x = __builtin__.property(_get_dot1x, _set_dot1x)
  authenticated_sessions = __builtin__.property(_get_authenticated_sessions, _set_authenticated_sessions)
  switched_vlan = __builtin__.property(_get_switched_vlan, _set_switched_vlan)
  poe = __builtin__.property(_get_poe, _set_poe)


  _pyangbind_elements = OrderedDict([('config', config), ('state', state), ('dot1x', dot1x), ('authenticated_sessions', authenticated_sessions), ('switched_vlan', switched_vlan), ('poe', poe), ])


class yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/subinterfaces/subinterface/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Configurable items at the subinterface level
  """
  __slots__ = ('_path_helper', '_extmethods', '__index','__description','__enabled',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__index = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(0), is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=True)
    self.__description = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="description", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='string', is_config=True)
    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'subinterfaces', 'subinterface', 'config']

  def _get_index(self):
    """
    Getter method for index, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/config/index (uint32)

    YANG Description: The index of the subinterface, or logical interface number.
On systems with no support for subinterfaces, or not using
subinterfaces, this value should default to 0, i.e., the
default subinterface.
    """
    return self.__index
      
  def _set_index(self, v, load=False):
    """
    Setter method for index, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/config/index (uint32)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_index is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_index() directly.

    YANG Description: The index of the subinterface, or logical interface number.
On systems with no support for subinterfaces, or not using
subinterfaces, this value should default to 0, i.e., the
default subinterface.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(0), is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """index must be of a type compatible with uint32""",
          'defined-type': "uint32",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(0), is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=True)""",
        })

    self.__index = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_index(self):
    self.__index = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(0), is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=True)


  def _get_description(self):
    """
    Getter method for description, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/config/description (string)

    YANG Description: A textual description of the interface.

A server implementation MAY map this leaf to the ifAlias
MIB object.  Such an implementation needs to use some
mechanism to handle the differences in size and characters
allowed between this leaf and ifAlias.  The definition of
such a mechanism is outside the scope of this document.

Since ifAlias is defined to be stored in non-volatile
storage, the MIB implementation MUST map ifAlias to the
value of 'description' in the persistently stored
datastore.

Specifically, if the device supports ':startup', when
ifAlias is read the device MUST return the value of
'description' in the 'startup' datastore, and when it is
written, it MUST be written to the 'running' and 'startup'
datastores.  Note that it is up to the implementation to

decide whether to modify this single leaf in 'startup' or
perform an implicit copy-config from 'running' to
'startup'.

If the device does not support ':startup', ifAlias MUST
be mapped to the 'description' leaf in the 'running'
datastore.
    """
    return self.__description
      
  def _set_description(self, v, load=False):
    """
    Setter method for description, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/config/description (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_description is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_description() directly.

    YANG Description: A textual description of the interface.

A server implementation MAY map this leaf to the ifAlias
MIB object.  Such an implementation needs to use some
mechanism to handle the differences in size and characters
allowed between this leaf and ifAlias.  The definition of
such a mechanism is outside the scope of this document.

Since ifAlias is defined to be stored in non-volatile
storage, the MIB implementation MUST map ifAlias to the
value of 'description' in the persistently stored
datastore.

Specifically, if the device supports ':startup', when
ifAlias is read the device MUST return the value of
'description' in the 'startup' datastore, and when it is
written, it MUST be written to the 'running' and 'startup'
datastores.  Note that it is up to the implementation to

decide whether to modify this single leaf in 'startup' or
perform an implicit copy-config from 'running' to
'startup'.

If the device does not support ':startup', ifAlias MUST
be mapped to the 'description' leaf in the 'running'
datastore.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="description", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='string', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """description must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="description", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='string', is_config=True)""",
        })

    self.__description = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_description(self):
    self.__description = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="description", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='string', is_config=True)


  def _get_enabled(self):
    """
    Getter method for enabled, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/config/enabled (boolean)

    YANG Description: This leaf contains the configured, desired state of the
interface.

Systems that implement the IF-MIB use the value of this
leaf in the 'running' datastore to set
IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry
has been initialized, as described in RFC 2863.

Changes in this leaf in the 'running' datastore are
reflected in ifAdminStatus, but if ifAdminStatus is
changed over SNMP, this leaf is not affected.
    """
    return self.__enabled
      
  def _set_enabled(self, v, load=False):
    """
    Setter method for enabled, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/config/enabled (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_enabled is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_enabled() directly.

    YANG Description: This leaf contains the configured, desired state of the
interface.

Systems that implement the IF-MIB use the value of this
leaf in the 'running' datastore to set
IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry
has been initialized, as described in RFC 2863.

Changes in this leaf in the 'running' datastore are
reflected in ifAdminStatus, but if ifAdminStatus is
changed over SNMP, this leaf is not affected.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """enabled must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)""",
        })

    self.__enabled = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_enabled(self):
    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)

  index = __builtin__.property(_get_index, _set_index)
  description = __builtin__.property(_get_description, _set_description)
  enabled = __builtin__.property(_get_enabled, _set_enabled)


  _pyangbind_elements = OrderedDict([('index', index), ('description', description), ('enabled', enabled), ])


class yc_counters_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_state_counters(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/subinterfaces/subinterface/state/counters. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: A collection of interface-related statistics objects.
  """
  __slots__ = ('_path_helper', '_extmethods', '__in_octets','__in_pkts','__in_unicast_pkts','__in_broadcast_pkts','__in_multicast_pkts','__in_discards','__in_errors','__in_unknown_protos','__in_fcs_errors','__out_octets','__out_pkts','__out_unicast_pkts','__out_broadcast_pkts','__out_multicast_pkts','__out_discards','__out_errors','__carrier_transitions','__last_clear',)

  _yang_name = 'counters'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__in_octets = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__in_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__in_unicast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-unicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__in_broadcast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-broadcast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__in_multicast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-multicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__in_discards = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-discards", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__in_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__in_unknown_protos = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-unknown-protos", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__in_fcs_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-fcs-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__out_octets = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__out_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__out_unicast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-unicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__out_broadcast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-broadcast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__out_multicast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-multicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__out_discards = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-discards", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__out_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__carrier_transitions = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="carrier-transitions", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__last_clear = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-clear", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-types:timeticks64', 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 ['access-points', 'access-point', 'interfaces', 'interface', 'subinterfaces', 'subinterface', 'state', 'counters']

  def _get_in_octets(self):
    """
    Getter method for in_octets, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/state/counters/in_octets (oc-yang:counter64)

    YANG Description: The total number of octets received on the interface,
including framing characters.

Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
'last-clear'.
    """
    return self.__in_octets
      
  def _set_in_octets(self, v, load=False):
    """
    Setter method for in_octets, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/state/counters/in_octets (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_in_octets is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_in_octets() directly.

    YANG Description: The total number of octets received on the interface,
including framing characters.

Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
'last-clear'.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """in_octets must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__in_octets = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_in_octets(self):
    self.__in_octets = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_in_pkts(self):
    """
    Getter method for in_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/state/counters/in_pkts (oc-yang:counter64)

    YANG Description: The total number of packets received on the interface,
including all unicast, multicast, broadcast and bad packets
etc.
    """
    return self.__in_pkts
      
  def _set_in_pkts(self, v, load=False):
    """
    Setter method for in_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/state/counters/in_pkts (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_in_pkts is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_in_pkts() directly.

    YANG Description: The total number of packets received on the interface,
including all unicast, multicast, broadcast and bad packets
etc.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """in_pkts must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__in_pkts = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_in_pkts(self):
    self.__in_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_in_unicast_pkts(self):
    """
    Getter method for in_unicast_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/state/counters/in_unicast_pkts (oc-yang:counter64)

    YANG Description: The number of packets, delivered by this sub-layer to a
higher (sub-)layer, that were not addressed to a
multicast or broadcast address at this sub-layer.

Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
'last-clear'.
    """
    return self.__in_unicast_pkts
      
  def _set_in_unicast_pkts(self, v, load=False):
    """
    Setter method for in_unicast_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/state/counters/in_unicast_pkts (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_in_unicast_pkts is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_in_unicast_pkts() directly.

    YANG Description: The number of packets, delivered by this sub-layer to a
higher (sub-)layer, that were not addressed to a
multicast or broadcast address at this sub-layer.

Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
'last-clear'.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-unicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """in_unicast_pkts must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-unicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__in_unicast_pkts = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_in_unicast_pkts(self):
    self.__in_unicast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-unicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_in_broadcast_pkts(self):
    """
    Getter method for in_broadcast_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/state/counters/in_broadcast_pkts (oc-yang:counter64)

    YANG Description: The number of packets, delivered by this sub-layer to a
higher (sub-)layer, that were addressed to a broadcast
address at this sub-layer.

Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
'last-clear'.
    """
    return self.__in_broadcast_pkts
      
  def _set_in_broadcast_pkts(self, v, load=False):
    """
    Setter method for in_broadcast_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/state/counters/in_broadcast_pkts (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_in_broadcast_pkts is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_in_broadcast_pkts() directly.

    YANG Description: The number of packets, delivered by this sub-layer to a
higher (sub-)layer, that were addressed to a broadcast
address at this sub-layer.

Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
'last-clear'.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-broadcast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """in_broadcast_pkts must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-broadcast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__in_broadcast_pkts = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_in_broadcast_pkts(self):
    self.__in_broadcast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-broadcast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_in_multicast_pkts(self):
    """
    Getter method for in_multicast_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/state/counters/in_multicast_pkts (oc-yang:counter64)

    YANG Description: The number of packets, delivered by this sub-layer to a
higher (sub-)layer, that were addressed to a multicast
address at this sub-layer.  For a MAC-layer protocol,
this includes both Group and Functional addresses.

Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
'last-clear'.
    """
    return self.__in_multicast_pkts
      
  def _set_in_multicast_pkts(self, v, load=False):
    """
    Setter method for in_multicast_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/state/counters/in_multicast_pkts (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_in_multicast_pkts is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_in_multicast_pkts() directly.

    YANG Description: The number of packets, delivered by this sub-layer to a
higher (sub-)layer, that were addressed to a multicast
address at this sub-layer.  For a MAC-layer protocol,
this includes both Group and Functional addresses.

Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
'last-clear'.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-multicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """in_multicast_pkts must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-multicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__in_multicast_pkts = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_in_multicast_pkts(self):
    self.__in_multicast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-multicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_in_discards(self):
    """
    Getter method for in_discards, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/state/counters/in_discards (oc-yang:counter64)

    YANG Description: The number of inbound packets that were chosen to be
discarded even though no errors had been detected to
prevent their being deliverable to a higher-layer
protocol.  One possible reason for discarding such a
packet could be to free up buffer space.

Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
'last-clear'.
    """
    return self.__in_discards
      
  def _set_in_discards(self, v, load=False):
    """
    Setter method for in_discards, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/state/counters/in_discards (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_in_discards is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_in_discards() directly.

    YANG Description: The number of inbound packets that were chosen to be
discarded even though no errors had been detected to
prevent their being deliverable to a higher-layer
protocol.  One possible reason for discarding such a
packet could be to free up buffer space.

Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
'last-clear'.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-discards", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """in_discards must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-discards", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__in_discards = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_in_discards(self):
    self.__in_discards = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-discards", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_in_errors(self):
    """
    Getter method for in_errors, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/state/counters/in_errors (oc-yang:counter64)

    YANG Description: For packet-oriented interfaces, the number of inbound
packets that contained errors preventing them from being
deliverable to a higher-layer protocol.  For character-
oriented or fixed-length interfaces, the number of
inbound transmission units that contained errors
preventing them from being deliverable to a higher-layer
protocol.

Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
'last-clear'.
    """
    return self.__in_errors
      
  def _set_in_errors(self, v, load=False):
    """
    Setter method for in_errors, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/state/counters/in_errors (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_in_errors is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_in_errors() directly.

    YANG Description: For packet-oriented interfaces, the number of inbound
packets that contained errors preventing them from being
deliverable to a higher-layer protocol.  For character-
oriented or fixed-length interfaces, the number of
inbound transmission units that contained errors
preventing them from being deliverable to a higher-layer
protocol.

Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
'last-clear'.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """in_errors must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__in_errors = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_in_errors(self):
    self.__in_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_in_unknown_protos(self):
    """
    Getter method for in_unknown_protos, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/state/counters/in_unknown_protos (oc-yang:counter64)

    YANG Description: For packet-oriented interfaces, the number of packets
received via the interface that were discarded because
of an unknown or unsupported protocol.  For
character-oriented or fixed-length interfaces that
support protocol multiplexing, the number of
transmission units received via the interface that were
discarded because of an unknown or unsupported protocol.
For any interface that does not support protocol
multiplexing, this counter is not present.

Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
'last-clear'.
    """
    return self.__in_unknown_protos
      
  def _set_in_unknown_protos(self, v, load=False):
    """
    Setter method for in_unknown_protos, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/state/counters/in_unknown_protos (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_in_unknown_protos is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_in_unknown_protos() directly.

    YANG Description: For packet-oriented interfaces, the number of packets
received via the interface that were discarded because
of an unknown or unsupported protocol.  For
character-oriented or fixed-length interfaces that
support protocol multiplexing, the number of
transmission units received via the interface that were
discarded because of an unknown or unsupported protocol.
For any interface that does not support protocol
multiplexing, this counter is not present.

Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
'last-clear'.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-unknown-protos", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """in_unknown_protos must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-unknown-protos", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__in_unknown_protos = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_in_unknown_protos(self):
    self.__in_unknown_protos = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-unknown-protos", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_in_fcs_errors(self):
    """
    Getter method for in_fcs_errors, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/state/counters/in_fcs_errors (oc-yang:counter64)

    YANG Description: Number of received packets which had errors in the
frame check sequence (FCS), i.e., framing errors.

Discontinuities in the value of this counter can occur
when the device is re-initialization as indicated by the
value of 'last-clear'.
    """
    return self.__in_fcs_errors
      
  def _set_in_fcs_errors(self, v, load=False):
    """
    Setter method for in_fcs_errors, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/state/counters/in_fcs_errors (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_in_fcs_errors is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_in_fcs_errors() directly.

    YANG Description: Number of received packets which had errors in the
frame check sequence (FCS), i.e., framing errors.

Discontinuities in the value of this counter can occur
when the device is re-initialization as indicated by the
value of 'last-clear'.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-fcs-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """in_fcs_errors must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-fcs-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__in_fcs_errors = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_in_fcs_errors(self):
    self.__in_fcs_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-fcs-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_out_octets(self):
    """
    Getter method for out_octets, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/state/counters/out_octets (oc-yang:counter64)

    YANG Description: The total number of octets transmitted out of the
interface, including framing characters.

Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
'last-clear'.
    """
    return self.__out_octets
      
  def _set_out_octets(self, v, load=False):
    """
    Setter method for out_octets, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/state/counters/out_octets (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_out_octets is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_out_octets() directly.

    YANG Description: The total number of octets transmitted out of the
interface, including framing characters.

Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
'last-clear'.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """out_octets must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__out_octets = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_out_octets(self):
    self.__out_octets = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_out_pkts(self):
    """
    Getter method for out_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/state/counters/out_pkts (oc-yang:counter64)

    YANG Description: The total number of packets transmitted out of the
interface, including all unicast, multicast, broadcast,
and bad packets etc.
    """
    return self.__out_pkts
      
  def _set_out_pkts(self, v, load=False):
    """
    Setter method for out_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/state/counters/out_pkts (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_out_pkts is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_out_pkts() directly.

    YANG Description: The total number of packets transmitted out of the
interface, including all unicast, multicast, broadcast,
and bad packets etc.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """out_pkts must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__out_pkts = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_out_pkts(self):
    self.__out_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_out_unicast_pkts(self):
    """
    Getter method for out_unicast_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/state/counters/out_unicast_pkts (oc-yang:counter64)

    YANG Description: The total number of packets that higher-level protocols
requested be transmitted, and that were not addressed
to a multicast or broadcast address at this sub-layer,
including those that were discarded or not sent.

Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
'last-clear'.
    """
    return self.__out_unicast_pkts
      
  def _set_out_unicast_pkts(self, v, load=False):
    """
    Setter method for out_unicast_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/state/counters/out_unicast_pkts (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_out_unicast_pkts is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_out_unicast_pkts() directly.

    YANG Description: The total number of packets that higher-level protocols
requested be transmitted, and that were not addressed
to a multicast or broadcast address at this sub-layer,
including those that were discarded or not sent.

Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
'last-clear'.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-unicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """out_unicast_pkts must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-unicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__out_unicast_pkts = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_out_unicast_pkts(self):
    self.__out_unicast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-unicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_out_broadcast_pkts(self):
    """
    Getter method for out_broadcast_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/state/counters/out_broadcast_pkts (oc-yang:counter64)

    YANG Description: The total number of packets that higher-level protocols
requested be transmitted, and that were addressed to a
broadcast address at this sub-layer, including those
that were discarded or not sent.

Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
'last-clear'.
    """
    return self.__out_broadcast_pkts
      
  def _set_out_broadcast_pkts(self, v, load=False):
    """
    Setter method for out_broadcast_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/state/counters/out_broadcast_pkts (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_out_broadcast_pkts is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_out_broadcast_pkts() directly.

    YANG Description: The total number of packets that higher-level protocols
requested be transmitted, and that were addressed to a
broadcast address at this sub-layer, including those
that were discarded or not sent.

Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
'last-clear'.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-broadcast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """out_broadcast_pkts must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-broadcast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__out_broadcast_pkts = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_out_broadcast_pkts(self):
    self.__out_broadcast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-broadcast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_out_multicast_pkts(self):
    """
    Getter method for out_multicast_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/state/counters/out_multicast_pkts (oc-yang:counter64)

    YANG Description: The total number of packets that higher-level protocols
requested be transmitted, and that were addressed to a
multicast address at this sub-layer, including those
that were discarded or not sent.  For a MAC-layer
protocol, this includes both Group and Functional
addresses.

Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
'last-clear'.
    """
    return self.__out_multicast_pkts
      
  def _set_out_multicast_pkts(self, v, load=False):
    """
    Setter method for out_multicast_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/state/counters/out_multicast_pkts (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_out_multicast_pkts is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_out_multicast_pkts() directly.

    YANG Description: The total number of packets that higher-level protocols
requested be transmitted, and that were addressed to a
multicast address at this sub-layer, including those
that were discarded or not sent.  For a MAC-layer
protocol, this includes both Group and Functional
addresses.

Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
'last-clear'.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-multicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """out_multicast_pkts must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-multicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__out_multicast_pkts = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_out_multicast_pkts(self):
    self.__out_multicast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-multicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_out_discards(self):
    """
    Getter method for out_discards, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/state/counters/out_discards (oc-yang:counter64)

    YANG Description: The number of outbound packets that were chosen to be
discarded even though no errors had been detected to
prevent their being transmitted.  One possible reason
for discarding such a packet could be to free up buffer
space.

Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
'last-clear'.
    """
    return self.__out_discards
      
  def _set_out_discards(self, v, load=False):
    """
    Setter method for out_discards, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/state/counters/out_discards (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_out_discards is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_out_discards() directly.

    YANG Description: The number of outbound packets that were chosen to be
discarded even though no errors had been detected to
prevent their being transmitted.  One possible reason
for discarding such a packet could be to free up buffer
space.

Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
'last-clear'.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-discards", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """out_discards must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-discards", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__out_discards = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_out_discards(self):
    self.__out_discards = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-discards", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_out_errors(self):
    """
    Getter method for out_errors, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/state/counters/out_errors (oc-yang:counter64)

    YANG Description: For packet-oriented interfaces, the number of outbound
packets that could not be transmitted because of errors.
For character-oriented or fixed-length interfaces, the
number of outbound transmission units that could not be
transmitted because of errors.

Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
'last-clear'.
    """
    return self.__out_errors
      
  def _set_out_errors(self, v, load=False):
    """
    Setter method for out_errors, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/state/counters/out_errors (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_out_errors is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_out_errors() directly.

    YANG Description: For packet-oriented interfaces, the number of outbound
packets that could not be transmitted because of errors.
For character-oriented or fixed-length interfaces, the
number of outbound transmission units that could not be
transmitted because of errors.

Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
'last-clear'.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """out_errors must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__out_errors = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_out_errors(self):
    self.__out_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_carrier_transitions(self):
    """
    Getter method for carrier_transitions, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/state/counters/carrier_transitions (oc-yang:counter64)

    YANG Description: Number of times the interface state has transitioned
between up and down since the time the device restarted
or the last-clear time, whichever is most recent.
    """
    return self.__carrier_transitions
      
  def _set_carrier_transitions(self, v, load=False):
    """
    Setter method for carrier_transitions, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/state/counters/carrier_transitions (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_carrier_transitions is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_carrier_transitions() directly.

    YANG Description: Number of times the interface state has transitioned
between up and down since the time the device restarted
or the last-clear time, whichever is most recent.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="carrier-transitions", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """carrier_transitions must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="carrier-transitions", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__carrier_transitions = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_carrier_transitions(self):
    self.__carrier_transitions = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="carrier-transitions", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_last_clear(self):
    """
    Getter method for last_clear, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/state/counters/last_clear (oc-types:timeticks64)

    YANG Description: Timestamp of the last time the interface counters were
cleared.

The value is the timestamp in nanoseconds relative to
the Unix Epoch (Jan 1, 1970 00:00:00 UTC).
    """
    return self.__last_clear
      
  def _set_last_clear(self, v, load=False):
    """
    Setter method for last_clear, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/state/counters/last_clear (oc-types:timeticks64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_last_clear is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_last_clear() directly.

    YANG Description: Timestamp of the last time the interface counters were
cleared.

The value is the timestamp in nanoseconds relative to
the Unix Epoch (Jan 1, 1970 00:00:00 UTC).
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-clear", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-types:timeticks64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """last_clear must be of a type compatible with oc-types:timeticks64""",
          'defined-type': "oc-types:timeticks64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-clear", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-types:timeticks64', is_config=False)""",
        })

    self.__last_clear = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_last_clear(self):
    self.__last_clear = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-clear", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-types:timeticks64', is_config=False)

  in_octets = __builtin__.property(_get_in_octets)
  in_pkts = __builtin__.property(_get_in_pkts)
  in_unicast_pkts = __builtin__.property(_get_in_unicast_pkts)
  in_broadcast_pkts = __builtin__.property(_get_in_broadcast_pkts)
  in_multicast_pkts = __builtin__.property(_get_in_multicast_pkts)
  in_discards = __builtin__.property(_get_in_discards)
  in_errors = __builtin__.property(_get_in_errors)
  in_unknown_protos = __builtin__.property(_get_in_unknown_protos)
  in_fcs_errors = __builtin__.property(_get_in_fcs_errors)
  out_octets = __builtin__.property(_get_out_octets)
  out_pkts = __builtin__.property(_get_out_pkts)
  out_unicast_pkts = __builtin__.property(_get_out_unicast_pkts)
  out_broadcast_pkts = __builtin__.property(_get_out_broadcast_pkts)
  out_multicast_pkts = __builtin__.property(_get_out_multicast_pkts)
  out_discards = __builtin__.property(_get_out_discards)
  out_errors = __builtin__.property(_get_out_errors)
  carrier_transitions = __builtin__.property(_get_carrier_transitions)
  last_clear = __builtin__.property(_get_last_clear)


  _pyangbind_elements = OrderedDict([('in_octets', in_octets), ('in_pkts', in_pkts), ('in_unicast_pkts', in_unicast_pkts), ('in_broadcast_pkts', in_broadcast_pkts), ('in_multicast_pkts', in_multicast_pkts), ('in_discards', in_discards), ('in_errors', in_errors), ('in_unknown_protos', in_unknown_protos), ('in_fcs_errors', in_fcs_errors), ('out_octets', out_octets), ('out_pkts', out_pkts), ('out_unicast_pkts', out_unicast_pkts), ('out_broadcast_pkts', out_broadcast_pkts), ('out_multicast_pkts', out_multicast_pkts), ('out_discards', out_discards), ('out_errors', out_errors), ('carrier_transitions', carrier_transitions), ('last_clear', last_clear), ])


class yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/subinterfaces/subinterface/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Operational state data for logical interfaces
  """
  __slots__ = ('_path_helper', '_extmethods', '__index','__description','__enabled','__name','__ifindex','__admin_status','__oper_status','__last_change','__logical','__management','__cpu','__counters',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__index = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(0), is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=False)
    self.__description = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="description", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='string', is_config=False)
    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)
    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='string', is_config=False)
    self.__ifindex = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="ifindex", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=False)
    self.__admin_status = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'UP': {}, 'DOWN': {}, 'TESTING': {}},), is_leaf=True, yang_name="admin-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', is_config=False)
    self.__oper_status = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'UP': {'value': 1}, 'DOWN': {'value': 2}, 'TESTING': {'value': 3}, 'UNKNOWN': {'value': 4}, 'DORMANT': {'value': 5}, 'NOT_PRESENT': {'value': 6}, 'LOWER_LAYER_DOWN': {'value': 7}},), is_leaf=True, yang_name="oper-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', is_config=False)
    self.__last_change = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-change", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-types:timeticks64', is_config=False)
    self.__logical = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="logical", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)
    self.__management = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="management", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)
    self.__cpu = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="cpu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)
    self.__counters = YANGDynClass(base=yc_counters_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_state_counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', 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 ['access-points', 'access-point', 'interfaces', 'interface', 'subinterfaces', 'subinterface', 'state']

  def _get_index(self):
    """
    Getter method for index, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/state/index (uint32)

    YANG Description: The index of the subinterface, or logical interface number.
On systems with no support for subinterfaces, or not using
subinterfaces, this value should default to 0, i.e., the
default subinterface.
    """
    return self.__index
      
  def _set_index(self, v, load=False):
    """
    Setter method for index, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/state/index (uint32)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_index is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_index() directly.

    YANG Description: The index of the subinterface, or logical interface number.
On systems with no support for subinterfaces, or not using
subinterfaces, this value should default to 0, i.e., the
default subinterface.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(0), is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """index must be of a type compatible with uint32""",
          'defined-type': "uint32",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(0), is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=False)""",
        })

    self.__index = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_index(self):
    self.__index = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(0), is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=False)


  def _get_description(self):
    """
    Getter method for description, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/state/description (string)

    YANG Description: A textual description of the interface.

A server implementation MAY map this leaf to the ifAlias
MIB object.  Such an implementation needs to use some
mechanism to handle the differences in size and characters
allowed between this leaf and ifAlias.  The definition of
such a mechanism is outside the scope of this document.

Since ifAlias is defined to be stored in non-volatile
storage, the MIB implementation MUST map ifAlias to the
value of 'description' in the persistently stored
datastore.

Specifically, if the device supports ':startup', when
ifAlias is read the device MUST return the value of
'description' in the 'startup' datastore, and when it is
written, it MUST be written to the 'running' and 'startup'
datastores.  Note that it is up to the implementation to

decide whether to modify this single leaf in 'startup' or
perform an implicit copy-config from 'running' to
'startup'.

If the device does not support ':startup', ifAlias MUST
be mapped to the 'description' leaf in the 'running'
datastore.
    """
    return self.__description
      
  def _set_description(self, v, load=False):
    """
    Setter method for description, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/state/description (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_description is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_description() directly.

    YANG Description: A textual description of the interface.

A server implementation MAY map this leaf to the ifAlias
MIB object.  Such an implementation needs to use some
mechanism to handle the differences in size and characters
allowed between this leaf and ifAlias.  The definition of
such a mechanism is outside the scope of this document.

Since ifAlias is defined to be stored in non-volatile
storage, the MIB implementation MUST map ifAlias to the
value of 'description' in the persistently stored
datastore.

Specifically, if the device supports ':startup', when
ifAlias is read the device MUST return the value of
'description' in the 'startup' datastore, and when it is
written, it MUST be written to the 'running' and 'startup'
datastores.  Note that it is up to the implementation to

decide whether to modify this single leaf in 'startup' or
perform an implicit copy-config from 'running' to
'startup'.

If the device does not support ':startup', ifAlias MUST
be mapped to the 'description' leaf in the 'running'
datastore.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="description", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='string', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """description must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="description", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='string', is_config=False)""",
        })

    self.__description = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_description(self):
    self.__description = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="description", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='string', is_config=False)


  def _get_enabled(self):
    """
    Getter method for enabled, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/state/enabled (boolean)

    YANG Description: This leaf contains the configured, desired state of the
interface.

Systems that implement the IF-MIB use the value of this
leaf in the 'running' datastore to set
IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry
has been initialized, as described in RFC 2863.

Changes in this leaf in the 'running' datastore are
reflected in ifAdminStatus, but if ifAdminStatus is
changed over SNMP, this leaf is not affected.
    """
    return self.__enabled
      
  def _set_enabled(self, v, load=False):
    """
    Setter method for enabled, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/state/enabled (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_enabled is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_enabled() directly.

    YANG Description: This leaf contains the configured, desired state of the
interface.

Systems that implement the IF-MIB use the value of this
leaf in the 'running' datastore to set
IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry
has been initialized, as described in RFC 2863.

Changes in this leaf in the 'running' datastore are
reflected in ifAdminStatus, but if ifAdminStatus is
changed over SNMP, this leaf is not affected.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """enabled must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)""",
        })

    self.__enabled = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_enabled(self):
    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)


  def _get_name(self):
    """
    Getter method for name, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/state/name (string)

    YANG Description: The system-assigned name for the sub-interface.  This MAY
be a combination of the base interface name and the
subinterface index, or some other convention used by the
system.
    """
    return self.__name
      
  def _set_name(self, v, load=False):
    """
    Setter method for name, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/state/name (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_name is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_name() directly.

    YANG Description: The system-assigned name for the sub-interface.  This MAY
be a combination of the base interface name and the
subinterface index, or some other convention used by the
system.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='string', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """name must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='string', is_config=False)""",
        })

    self.__name = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_name(self):
    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='string', is_config=False)


  def _get_ifindex(self):
    """
    Getter method for ifindex, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/state/ifindex (uint32)

    YANG Description: System assigned number for each interface.  Corresponds to
ifIndex object in SNMP Interface MIB
    """
    return self.__ifindex
      
  def _set_ifindex(self, v, load=False):
    """
    Setter method for ifindex, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/state/ifindex (uint32)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ifindex is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ifindex() directly.

    YANG Description: System assigned number for each interface.  Corresponds to
ifIndex object in SNMP Interface MIB
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="ifindex", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ifindex must be of a type compatible with uint32""",
          'defined-type': "uint32",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="ifindex", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=False)""",
        })

    self.__ifindex = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ifindex(self):
    self.__ifindex = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="ifindex", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=False)


  def _get_admin_status(self):
    """
    Getter method for admin_status, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/state/admin_status (enumeration)

    YANG Description: The desired state of the interface.  In RFC 7223 this leaf
has the same read semantics as ifAdminStatus.  Here, it
reflects the administrative state as set by enabling or
disabling the interface.
    """
    return self.__admin_status
      
  def _set_admin_status(self, v, load=False):
    """
    Setter method for admin_status, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/state/admin_status (enumeration)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_admin_status is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_admin_status() directly.

    YANG Description: The desired state of the interface.  In RFC 7223 this leaf
has the same read semantics as ifAdminStatus.  Here, it
reflects the administrative state as set by enabling or
disabling the interface.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'UP': {}, 'DOWN': {}, 'TESTING': {}},), is_leaf=True, yang_name="admin-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """admin_status must be of a type compatible with enumeration""",
          'defined-type': "openconfig-ap-interfaces:enumeration",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'UP': {}, 'DOWN': {}, 'TESTING': {}},), is_leaf=True, yang_name="admin-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', is_config=False)""",
        })

    self.__admin_status = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_admin_status(self):
    self.__admin_status = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'UP': {}, 'DOWN': {}, 'TESTING': {}},), is_leaf=True, yang_name="admin-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', is_config=False)


  def _get_oper_status(self):
    """
    Getter method for oper_status, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/state/oper_status (enumeration)

    YANG Description: The current operational state of the interface.

This leaf has the same semantics as ifOperStatus.
    """
    return self.__oper_status
      
  def _set_oper_status(self, v, load=False):
    """
    Setter method for oper_status, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/state/oper_status (enumeration)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_oper_status is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_oper_status() directly.

    YANG Description: The current operational state of the interface.

This leaf has the same semantics as ifOperStatus.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'UP': {'value': 1}, 'DOWN': {'value': 2}, 'TESTING': {'value': 3}, 'UNKNOWN': {'value': 4}, 'DORMANT': {'value': 5}, 'NOT_PRESENT': {'value': 6}, 'LOWER_LAYER_DOWN': {'value': 7}},), is_leaf=True, yang_name="oper-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """oper_status must be of a type compatible with enumeration""",
          'defined-type': "openconfig-ap-interfaces:enumeration",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'UP': {'value': 1}, 'DOWN': {'value': 2}, 'TESTING': {'value': 3}, 'UNKNOWN': {'value': 4}, 'DORMANT': {'value': 5}, 'NOT_PRESENT': {'value': 6}, 'LOWER_LAYER_DOWN': {'value': 7}},), is_leaf=True, yang_name="oper-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', is_config=False)""",
        })

    self.__oper_status = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_oper_status(self):
    self.__oper_status = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'UP': {'value': 1}, 'DOWN': {'value': 2}, 'TESTING': {'value': 3}, 'UNKNOWN': {'value': 4}, 'DORMANT': {'value': 5}, 'NOT_PRESENT': {'value': 6}, 'LOWER_LAYER_DOWN': {'value': 7}},), is_leaf=True, yang_name="oper-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', is_config=False)


  def _get_last_change(self):
    """
    Getter method for last_change, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/state/last_change (oc-types:timeticks64)

    YANG Description: This timestamp indicates the absolute time of the last
state change of the interface (e.g., up-to-down transition).
This is different than the SNMP ifLastChange object in the
standard interface MIB in that it is not relative to the
system boot time (i.e,. sysUpTime).

The value is the timestamp in nanoseconds relative to
the Unix Epoch (Jan 1, 1970 00:00:00 UTC).
    """
    return self.__last_change
      
  def _set_last_change(self, v, load=False):
    """
    Setter method for last_change, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/state/last_change (oc-types:timeticks64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_last_change is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_last_change() directly.

    YANG Description: This timestamp indicates the absolute time of the last
state change of the interface (e.g., up-to-down transition).
This is different than the SNMP ifLastChange object in the
standard interface MIB in that it is not relative to the
system boot time (i.e,. sysUpTime).

The value is the timestamp in nanoseconds relative to
the Unix Epoch (Jan 1, 1970 00:00:00 UTC).
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-change", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-types:timeticks64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """last_change must be of a type compatible with oc-types:timeticks64""",
          'defined-type': "oc-types:timeticks64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-change", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-types:timeticks64', is_config=False)""",
        })

    self.__last_change = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_last_change(self):
    self.__last_change = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-change", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-types:timeticks64', is_config=False)


  def _get_logical(self):
    """
    Getter method for logical, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/state/logical (boolean)

    YANG Description: When set to true, the interface is a logical interface
which does not have an associated physical port or
channel on the system.
    """
    return self.__logical
      
  def _set_logical(self, v, load=False):
    """
    Setter method for logical, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/state/logical (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_logical is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_logical() directly.

    YANG Description: When set to true, the interface is a logical interface
which does not have an associated physical port or
channel on the system.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="logical", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """logical must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="logical", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)""",
        })

    self.__logical = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_logical(self):
    self.__logical = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="logical", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)


  def _get_management(self):
    """
    Getter method for management, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/state/management (boolean)

    YANG Description: When set to true, the interface is a dedicated
management interface that is not connected to dataplane
interfaces.  It may be used to connect the system to an
out-of-band management network, for example.
    """
    return self.__management
      
  def _set_management(self, v, load=False):
    """
    Setter method for management, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/state/management (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_management is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_management() directly.

    YANG Description: When set to true, the interface is a dedicated
management interface that is not connected to dataplane
interfaces.  It may be used to connect the system to an
out-of-band management network, for example.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="management", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """management must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="management", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)""",
        })

    self.__management = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_management(self):
    self.__management = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="management", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)


  def _get_cpu(self):
    """
    Getter method for cpu, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/state/cpu (boolean)

    YANG Description: When set to true, the interface is for traffic
that is handled by the system CPU, sometimes also called the
control plane interface.  On systems that represent the CPU
interface as an Ethernet interface, for example, this leaf
should be used to distinguish the CPU interface from dataplane
interfaces.
    """
    return self.__cpu
      
  def _set_cpu(self, v, load=False):
    """
    Setter method for cpu, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/state/cpu (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_cpu is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_cpu() directly.

    YANG Description: When set to true, the interface is for traffic
that is handled by the system CPU, sometimes also called the
control plane interface.  On systems that represent the CPU
interface as an Ethernet interface, for example, this leaf
should be used to distinguish the CPU interface from dataplane
interfaces.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="cpu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """cpu must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="cpu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)""",
        })

    self.__cpu = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_cpu(self):
    self.__cpu = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="cpu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)


  def _get_counters(self):
    """
    Getter method for counters, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/state/counters (container)

    YANG Description: A collection of interface-related statistics objects.
    """
    return self.__counters
      
  def _set_counters(self, v, load=False):
    """
    Setter method for counters, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/state/counters (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_counters is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_counters() directly.

    YANG Description: A collection of interface-related statistics objects.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_counters_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_state_counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """counters must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_counters_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_state_counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=False)""",
        })

    self.__counters = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_counters(self):
    self.__counters = YANGDynClass(base=yc_counters_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_state_counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=False)

  index = __builtin__.property(_get_index)
  description = __builtin__.property(_get_description)
  enabled = __builtin__.property(_get_enabled)
  name = __builtin__.property(_get_name)
  ifindex = __builtin__.property(_get_ifindex)
  admin_status = __builtin__.property(_get_admin_status)
  oper_status = __builtin__.property(_get_oper_status)
  last_change = __builtin__.property(_get_last_change)
  logical = __builtin__.property(_get_logical)
  management = __builtin__.property(_get_management)
  cpu = __builtin__.property(_get_cpu)
  counters = __builtin__.property(_get_counters)


  _pyangbind_elements = OrderedDict([('index', index), ('description', description), ('enabled', enabled), ('name', name), ('ifindex', ifindex), ('admin_status', admin_status), ('oper_status', oper_status), ('last_change', last_change), ('logical', logical), ('management', management), ('cpu', cpu), ('counters', counters), ])


class yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_addresses_address_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/subinterfaces/subinterface/ipv4/addresses/address/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Configuration data for each configured IPv4
address on the interface
  """
  __slots__ = ('_path_helper', '_extmethods', '__ip','__prefix_length','__type',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__ip = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}), is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv4-address', is_config=True)
    self.__prefix_length = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..32']}), is_leaf=True, yang_name="prefix-length", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint8', is_config=True)
    self.__type = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'PRIMARY': {}, 'SECONDARY': {}},), default=six.text_type("PRIMARY"), is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='ipv4-address-type', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'subinterfaces', 'subinterface', 'ipv4', 'addresses', 'address', 'config']

  def _get_ip(self):
    """
    Getter method for ip, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/addresses/address/config/ip (oc-inet:ipv4-address)

    YANG Description: The IPv4 address on the interface.
    """
    return self.__ip
      
  def _set_ip(self, v, load=False):
    """
    Setter method for ip, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/addresses/address/config/ip (oc-inet:ipv4-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ip is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ip() directly.

    YANG Description: The IPv4 address on the interface.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}), is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv4-address', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ip must be of a type compatible with oc-inet:ipv4-address""",
          'defined-type': "oc-inet:ipv4-address",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}), is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv4-address', is_config=True)""",
        })

    self.__ip = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ip(self):
    self.__ip = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}), is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv4-address', is_config=True)


  def _get_prefix_length(self):
    """
    Getter method for prefix_length, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/addresses/address/config/prefix_length (uint8)

    YANG Description: The length of the subnet prefix.
    """
    return self.__prefix_length
      
  def _set_prefix_length(self, v, load=False):
    """
    Setter method for prefix_length, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/addresses/address/config/prefix_length (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_prefix_length is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_prefix_length() directly.

    YANG Description: The length of the subnet prefix.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..32']}), is_leaf=True, yang_name="prefix-length", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint8', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """prefix_length must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..32']}), is_leaf=True, yang_name="prefix-length", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint8', is_config=True)""",
        })

    self.__prefix_length = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_prefix_length(self):
    self.__prefix_length = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..32']}), is_leaf=True, yang_name="prefix-length", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint8', is_config=True)


  def _get_type(self):
    """
    Getter method for type, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/addresses/address/config/type (ipv4-address-type)

    YANG Description: Specifies the explicit type of the IPv4 address being assigned
to the interface. By default, addresses are assumed to be a primary address.
Where secondary addresses is to be configured, this leaf should be set
to SECONDARY.
    """
    return self.__type
      
  def _set_type(self, v, load=False):
    """
    Setter method for type, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/addresses/address/config/type (ipv4-address-type)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_type is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_type() directly.

    YANG Description: Specifies the explicit type of the IPv4 address being assigned
to the interface. By default, addresses are assumed to be a primary address.
Where secondary addresses is to be configured, this leaf should be set
to SECONDARY.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'PRIMARY': {}, 'SECONDARY': {}},), default=six.text_type("PRIMARY"), is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='ipv4-address-type', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """type must be of a type compatible with ipv4-address-type""",
          'defined-type': "openconfig-ap-interfaces:ipv4-address-type",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'PRIMARY': {}, 'SECONDARY': {}},), default=six.text_type("PRIMARY"), is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='ipv4-address-type', is_config=True)""",
        })

    self.__type = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_type(self):
    self.__type = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'PRIMARY': {}, 'SECONDARY': {}},), default=six.text_type("PRIMARY"), is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='ipv4-address-type', is_config=True)

  ip = __builtin__.property(_get_ip, _set_ip)
  prefix_length = __builtin__.property(_get_prefix_length, _set_prefix_length)
  type = __builtin__.property(_get_type, _set_type)


  _pyangbind_elements = OrderedDict([('ip', ip), ('prefix_length', prefix_length), ('type', type), ])


class yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_addresses_address_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/subinterfaces/subinterface/ipv4/addresses/address/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Operational state data for each IPv4 address
configured on the interface
  """
  __slots__ = ('_path_helper', '_extmethods', '__ip','__prefix_length','__type','__origin',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__ip = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}), is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv4-address', is_config=False)
    self.__prefix_length = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..32']}), is_leaf=True, yang_name="prefix-length", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint8', is_config=False)
    self.__type = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'PRIMARY': {}, 'SECONDARY': {}},), default=six.text_type("PRIMARY"), is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='ipv4-address-type', is_config=False)
    self.__origin = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OTHER': {}, 'STATIC': {}, 'DHCP': {}, 'LINK_LAYER': {}, 'RANDOM': {}},), is_leaf=True, yang_name="origin", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='ip-address-origin', 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 ['access-points', 'access-point', 'interfaces', 'interface', 'subinterfaces', 'subinterface', 'ipv4', 'addresses', 'address', 'state']

  def _get_ip(self):
    """
    Getter method for ip, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/addresses/address/state/ip (oc-inet:ipv4-address)

    YANG Description: The IPv4 address on the interface.
    """
    return self.__ip
      
  def _set_ip(self, v, load=False):
    """
    Setter method for ip, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/addresses/address/state/ip (oc-inet:ipv4-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ip is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ip() directly.

    YANG Description: The IPv4 address on the interface.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}), is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv4-address', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ip must be of a type compatible with oc-inet:ipv4-address""",
          'defined-type': "oc-inet:ipv4-address",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}), is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv4-address', is_config=False)""",
        })

    self.__ip = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ip(self):
    self.__ip = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}), is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv4-address', is_config=False)


  def _get_prefix_length(self):
    """
    Getter method for prefix_length, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/addresses/address/state/prefix_length (uint8)

    YANG Description: The length of the subnet prefix.
    """
    return self.__prefix_length
      
  def _set_prefix_length(self, v, load=False):
    """
    Setter method for prefix_length, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/addresses/address/state/prefix_length (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_prefix_length is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_prefix_length() directly.

    YANG Description: The length of the subnet prefix.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..32']}), is_leaf=True, yang_name="prefix-length", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """prefix_length must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..32']}), is_leaf=True, yang_name="prefix-length", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint8', is_config=False)""",
        })

    self.__prefix_length = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_prefix_length(self):
    self.__prefix_length = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..32']}), is_leaf=True, yang_name="prefix-length", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint8', is_config=False)


  def _get_type(self):
    """
    Getter method for type, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/addresses/address/state/type (ipv4-address-type)

    YANG Description: Specifies the explicit type of the IPv4 address being assigned
to the interface. By default, addresses are assumed to be a primary address.
Where secondary addresses is to be configured, this leaf should be set
to SECONDARY.
    """
    return self.__type
      
  def _set_type(self, v, load=False):
    """
    Setter method for type, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/addresses/address/state/type (ipv4-address-type)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_type is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_type() directly.

    YANG Description: Specifies the explicit type of the IPv4 address being assigned
to the interface. By default, addresses are assumed to be a primary address.
Where secondary addresses is to be configured, this leaf should be set
to SECONDARY.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'PRIMARY': {}, 'SECONDARY': {}},), default=six.text_type("PRIMARY"), is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='ipv4-address-type', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """type must be of a type compatible with ipv4-address-type""",
          'defined-type': "openconfig-ap-interfaces:ipv4-address-type",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'PRIMARY': {}, 'SECONDARY': {}},), default=six.text_type("PRIMARY"), is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='ipv4-address-type', is_config=False)""",
        })

    self.__type = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_type(self):
    self.__type = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'PRIMARY': {}, 'SECONDARY': {}},), default=six.text_type("PRIMARY"), is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='ipv4-address-type', is_config=False)


  def _get_origin(self):
    """
    Getter method for origin, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/addresses/address/state/origin (ip-address-origin)

    YANG Description: The origin of this address, e.g., statically configured,
assigned by DHCP, etc..
    """
    return self.__origin
      
  def _set_origin(self, v, load=False):
    """
    Setter method for origin, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/addresses/address/state/origin (ip-address-origin)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_origin is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_origin() directly.

    YANG Description: The origin of this address, e.g., statically configured,
assigned by DHCP, etc..
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OTHER': {}, 'STATIC': {}, 'DHCP': {}, 'LINK_LAYER': {}, 'RANDOM': {}},), is_leaf=True, yang_name="origin", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='ip-address-origin', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """origin must be of a type compatible with ip-address-origin""",
          'defined-type': "openconfig-ap-interfaces:ip-address-origin",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OTHER': {}, 'STATIC': {}, 'DHCP': {}, 'LINK_LAYER': {}, 'RANDOM': {}},), is_leaf=True, yang_name="origin", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='ip-address-origin', is_config=False)""",
        })

    self.__origin = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_origin(self):
    self.__origin = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OTHER': {}, 'STATIC': {}, 'DHCP': {}, 'LINK_LAYER': {}, 'RANDOM': {}},), is_leaf=True, yang_name="origin", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='ip-address-origin', is_config=False)

  ip = __builtin__.property(_get_ip)
  prefix_length = __builtin__.property(_get_prefix_length)
  type = __builtin__.property(_get_type)
  origin = __builtin__.property(_get_origin)


  _pyangbind_elements = OrderedDict([('ip', ip), ('prefix_length', prefix_length), ('type', type), ('origin', origin), ])


class yc_address_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_addresses_address(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/subinterfaces/subinterface/ipv4/addresses/address. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: The list of configured IPv4 addresses on the interface.
  """
  __slots__ = ('_path_helper', '_extmethods', '__ip','__config','__state',)

  _yang_name = 'address'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__ip = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_addresses_address_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_addresses_address_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'subinterfaces', 'subinterface', 'ipv4', 'addresses', 'address']

  def _get_ip(self):
    """
    Getter method for ip, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/addresses/address/ip (leafref)

    YANG Description: References the configured IP address
    """
    return self.__ip
      
  def _set_ip(self, v, load=False):
    """
    Setter method for ip, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/addresses/address/ip (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ip is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ip() directly.

    YANG Description: References the configured IP address
    """
    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="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ip must be of a type compatible with leafref""",
          'defined-type': "leafref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)""",
        })

    self.__ip = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ip(self):
    self.__ip = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)


  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/addresses/address/config (container)

    YANG Description: Configuration data for each configured IPv4
address on the interface
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/addresses/address/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Configuration data for each configured IPv4
address on the interface
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_addresses_address_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_addresses_address_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_addresses_address_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/addresses/address/state (container)

    YANG Description: Operational state data for each IPv4 address
configured on the interface
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/addresses/address/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: Operational state data for each IPv4 address
configured on the interface
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_addresses_address_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_addresses_address_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_addresses_address_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

  ip = __builtin__.property(_get_ip, _set_ip)
  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)


  _pyangbind_elements = OrderedDict([('ip', ip), ('config', config), ('state', state), ])


class yc_addresses_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_addresses(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/subinterfaces/subinterface/ipv4/addresses. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Enclosing container for address list
  """
  __slots__ = ('_path_helper', '_extmethods', '__address',)

  _yang_name = 'addresses'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__address = YANGDynClass(base=YANGListType("ip",yc_address_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_addresses_address, yang_name="address", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='ip', extensions=None), is_container='list', yang_name="address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='list', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'subinterfaces', 'subinterface', 'ipv4', 'addresses']

  def _get_address(self):
    """
    Getter method for address, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/addresses/address (list)

    YANG Description: The list of configured IPv4 addresses on the interface.
    """
    return self.__address
      
  def _set_address(self, v, load=False):
    """
    Setter method for address, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/addresses/address (list)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_address is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_address() directly.

    YANG Description: The list of configured IPv4 addresses on the interface.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGListType("ip",yc_address_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_addresses_address, yang_name="address", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='ip', extensions=None), is_container='list', yang_name="address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='list', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """address must be of a type compatible with list""",
          'defined-type': "list",
          'generated-type': """YANGDynClass(base=YANGListType("ip",yc_address_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_addresses_address, yang_name="address", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='ip', extensions=None), is_container='list', yang_name="address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='list', is_config=True)""",
        })

    self.__address = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_address(self):
    self.__address = YANGDynClass(base=YANGListType("ip",yc_address_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_addresses_address, yang_name="address", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='ip', extensions=None), is_container='list', yang_name="address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='list', is_config=True)

  address = __builtin__.property(_get_address, _set_address)


  _pyangbind_elements = OrderedDict([('address', address), ])


class yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_proxy_arp_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/subinterfaces/subinterface/ipv4/proxy-arp/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Configuration parameters for proxy ARP
  """
  __slots__ = ('_path_helper', '_extmethods', '__mode',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__mode = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'DISABLE': {}, 'REMOTE_ONLY': {}, 'ALL': {}},), default=six.text_type("DISABLE"), is_leaf=True, yang_name="mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'subinterfaces', 'subinterface', 'ipv4', 'proxy-arp', 'config']

  def _get_mode(self):
    """
    Getter method for mode, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/proxy_arp/config/mode (enumeration)

    YANG Description: When set to a value other than DISABLE, the local system should
respond to ARP requests that are for target addresses other than
those that are configured on the local subinterface using its own
MAC address as the target hardware address. If the REMOTE_ONLY
value is specified, replies are only sent when the target address
falls outside the locally configured subnets on the interface,
whereas with the ALL value, all requests, regardless of their
target address are replied to.
    """
    return self.__mode
      
  def _set_mode(self, v, load=False):
    """
    Setter method for mode, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/proxy_arp/config/mode (enumeration)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mode is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mode() directly.

    YANG Description: When set to a value other than DISABLE, the local system should
respond to ARP requests that are for target addresses other than
those that are configured on the local subinterface using its own
MAC address as the target hardware address. If the REMOTE_ONLY
value is specified, replies are only sent when the target address
falls outside the locally configured subnets on the interface,
whereas with the ALL value, all requests, regardless of their
target address are replied to.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'DISABLE': {}, 'REMOTE_ONLY': {}, 'ALL': {}},), default=six.text_type("DISABLE"), is_leaf=True, yang_name="mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mode must be of a type compatible with enumeration""",
          'defined-type': "openconfig-ap-interfaces:enumeration",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'DISABLE': {}, 'REMOTE_ONLY': {}, 'ALL': {}},), default=six.text_type("DISABLE"), is_leaf=True, yang_name="mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', is_config=True)""",
        })

    self.__mode = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mode(self):
    self.__mode = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'DISABLE': {}, 'REMOTE_ONLY': {}, 'ALL': {}},), default=six.text_type("DISABLE"), is_leaf=True, yang_name="mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', is_config=True)

  mode = __builtin__.property(_get_mode, _set_mode)


  _pyangbind_elements = OrderedDict([('mode', mode), ])


class yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_proxy_arp_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/subinterfaces/subinterface/ipv4/proxy-arp/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Operational state parameters for proxy ARP
  """
  __slots__ = ('_path_helper', '_extmethods', '__mode',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__mode = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'DISABLE': {}, 'REMOTE_ONLY': {}, 'ALL': {}},), default=six.text_type("DISABLE"), is_leaf=True, yang_name="mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', 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 ['access-points', 'access-point', 'interfaces', 'interface', 'subinterfaces', 'subinterface', 'ipv4', 'proxy-arp', 'state']

  def _get_mode(self):
    """
    Getter method for mode, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/proxy_arp/state/mode (enumeration)

    YANG Description: When set to a value other than DISABLE, the local system should
respond to ARP requests that are for target addresses other than
those that are configured on the local subinterface using its own
MAC address as the target hardware address. If the REMOTE_ONLY
value is specified, replies are only sent when the target address
falls outside the locally configured subnets on the interface,
whereas with the ALL value, all requests, regardless of their
target address are replied to.
    """
    return self.__mode
      
  def _set_mode(self, v, load=False):
    """
    Setter method for mode, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/proxy_arp/state/mode (enumeration)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mode is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mode() directly.

    YANG Description: When set to a value other than DISABLE, the local system should
respond to ARP requests that are for target addresses other than
those that are configured on the local subinterface using its own
MAC address as the target hardware address. If the REMOTE_ONLY
value is specified, replies are only sent when the target address
falls outside the locally configured subnets on the interface,
whereas with the ALL value, all requests, regardless of their
target address are replied to.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'DISABLE': {}, 'REMOTE_ONLY': {}, 'ALL': {}},), default=six.text_type("DISABLE"), is_leaf=True, yang_name="mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mode must be of a type compatible with enumeration""",
          'defined-type': "openconfig-ap-interfaces:enumeration",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'DISABLE': {}, 'REMOTE_ONLY': {}, 'ALL': {}},), default=six.text_type("DISABLE"), is_leaf=True, yang_name="mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', is_config=False)""",
        })

    self.__mode = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mode(self):
    self.__mode = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'DISABLE': {}, 'REMOTE_ONLY': {}, 'ALL': {}},), default=six.text_type("DISABLE"), is_leaf=True, yang_name="mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', is_config=False)

  mode = __builtin__.property(_get_mode)


  _pyangbind_elements = OrderedDict([('mode', mode), ])


class yc_proxy_arp_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_proxy_arp(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/subinterfaces/subinterface/ipv4/proxy-arp. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Configuration and operational state parameters
relating to proxy ARP. This functionality allows a
system to respond to ARP requests that are not
explicitly destined to the local system.
  """
  __slots__ = ('_path_helper', '_extmethods', '__config','__state',)

  _yang_name = 'proxy-arp'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_proxy_arp_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_proxy_arp_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'subinterfaces', 'subinterface', 'ipv4', 'proxy-arp']

  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/proxy_arp/config (container)

    YANG Description: Configuration parameters for proxy ARP
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/proxy_arp/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Configuration parameters for proxy ARP
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_proxy_arp_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_proxy_arp_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_proxy_arp_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/proxy_arp/state (container)

    YANG Description: Operational state parameters for proxy ARP
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/proxy_arp/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: Operational state parameters for proxy ARP
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_proxy_arp_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_proxy_arp_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_proxy_arp_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)


  _pyangbind_elements = OrderedDict([('config', config), ('state', state), ])


class yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_neighbors_neighbor_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/subinterfaces/subinterface/ipv4/neighbors/neighbor/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Configuration data for each configured IPv4
address on the interface
  """
  __slots__ = ('_path_helper', '_extmethods', '__ip','__link_layer_address',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__ip = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}), is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv4-address', is_config=True)
    self.__link_layer_address = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'}), is_leaf=True, yang_name="link-layer-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:phys-address', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'subinterfaces', 'subinterface', 'ipv4', 'neighbors', 'neighbor', 'config']

  def _get_ip(self):
    """
    Getter method for ip, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/neighbors/neighbor/config/ip (oc-inet:ipv4-address)

    YANG Description: The IPv4 address of the neighbor node.
    """
    return self.__ip
      
  def _set_ip(self, v, load=False):
    """
    Setter method for ip, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/neighbors/neighbor/config/ip (oc-inet:ipv4-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ip is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ip() directly.

    YANG Description: The IPv4 address of the neighbor node.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}), is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv4-address', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ip must be of a type compatible with oc-inet:ipv4-address""",
          'defined-type': "oc-inet:ipv4-address",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}), is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv4-address', is_config=True)""",
        })

    self.__ip = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ip(self):
    self.__ip = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}), is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv4-address', is_config=True)


  def _get_link_layer_address(self):
    """
    Getter method for link_layer_address, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/neighbors/neighbor/config/link_layer_address (oc-yang:phys-address)

    YANG Description: The link-layer address of the neighbor node.
    """
    return self.__link_layer_address
      
  def _set_link_layer_address(self, v, load=False):
    """
    Setter method for link_layer_address, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/neighbors/neighbor/config/link_layer_address (oc-yang:phys-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_link_layer_address is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_link_layer_address() directly.

    YANG Description: The link-layer address of the neighbor node.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'}), is_leaf=True, yang_name="link-layer-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:phys-address', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """link_layer_address must be of a type compatible with oc-yang:phys-address""",
          'defined-type': "oc-yang:phys-address",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'}), is_leaf=True, yang_name="link-layer-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:phys-address', is_config=True)""",
        })

    self.__link_layer_address = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_link_layer_address(self):
    self.__link_layer_address = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'}), is_leaf=True, yang_name="link-layer-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:phys-address', is_config=True)

  ip = __builtin__.property(_get_ip, _set_ip)
  link_layer_address = __builtin__.property(_get_link_layer_address, _set_link_layer_address)


  _pyangbind_elements = OrderedDict([('ip', ip), ('link_layer_address', link_layer_address), ])


class yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_neighbors_neighbor_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/subinterfaces/subinterface/ipv4/neighbors/neighbor/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Operational state data for each IPv4 address
configured on the interface
  """
  __slots__ = ('_path_helper', '_extmethods', '__ip','__link_layer_address','__origin',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__ip = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}), is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv4-address', is_config=False)
    self.__link_layer_address = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'}), is_leaf=True, yang_name="link-layer-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:phys-address', is_config=False)
    self.__origin = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OTHER': {}, 'STATIC': {}, 'DYNAMIC': {}},), is_leaf=True, yang_name="origin", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='neighbor-origin', 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 ['access-points', 'access-point', 'interfaces', 'interface', 'subinterfaces', 'subinterface', 'ipv4', 'neighbors', 'neighbor', 'state']

  def _get_ip(self):
    """
    Getter method for ip, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/neighbors/neighbor/state/ip (oc-inet:ipv4-address)

    YANG Description: The IPv4 address of the neighbor node.
    """
    return self.__ip
      
  def _set_ip(self, v, load=False):
    """
    Setter method for ip, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/neighbors/neighbor/state/ip (oc-inet:ipv4-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ip is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ip() directly.

    YANG Description: The IPv4 address of the neighbor node.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}), is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv4-address', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ip must be of a type compatible with oc-inet:ipv4-address""",
          'defined-type': "oc-inet:ipv4-address",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}), is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv4-address', is_config=False)""",
        })

    self.__ip = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ip(self):
    self.__ip = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}), is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv4-address', is_config=False)


  def _get_link_layer_address(self):
    """
    Getter method for link_layer_address, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/neighbors/neighbor/state/link_layer_address (oc-yang:phys-address)

    YANG Description: The link-layer address of the neighbor node.
    """
    return self.__link_layer_address
      
  def _set_link_layer_address(self, v, load=False):
    """
    Setter method for link_layer_address, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/neighbors/neighbor/state/link_layer_address (oc-yang:phys-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_link_layer_address is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_link_layer_address() directly.

    YANG Description: The link-layer address of the neighbor node.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'}), is_leaf=True, yang_name="link-layer-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:phys-address', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """link_layer_address must be of a type compatible with oc-yang:phys-address""",
          'defined-type': "oc-yang:phys-address",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'}), is_leaf=True, yang_name="link-layer-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:phys-address', is_config=False)""",
        })

    self.__link_layer_address = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_link_layer_address(self):
    self.__link_layer_address = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'}), is_leaf=True, yang_name="link-layer-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:phys-address', is_config=False)


  def _get_origin(self):
    """
    Getter method for origin, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/neighbors/neighbor/state/origin (neighbor-origin)

    YANG Description: The origin of this neighbor entry, static or dynamic.
    """
    return self.__origin
      
  def _set_origin(self, v, load=False):
    """
    Setter method for origin, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/neighbors/neighbor/state/origin (neighbor-origin)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_origin is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_origin() directly.

    YANG Description: The origin of this neighbor entry, static or dynamic.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OTHER': {}, 'STATIC': {}, 'DYNAMIC': {}},), is_leaf=True, yang_name="origin", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='neighbor-origin', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """origin must be of a type compatible with neighbor-origin""",
          'defined-type': "openconfig-ap-interfaces:neighbor-origin",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OTHER': {}, 'STATIC': {}, 'DYNAMIC': {}},), is_leaf=True, yang_name="origin", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='neighbor-origin', is_config=False)""",
        })

    self.__origin = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_origin(self):
    self.__origin = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OTHER': {}, 'STATIC': {}, 'DYNAMIC': {}},), is_leaf=True, yang_name="origin", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='neighbor-origin', is_config=False)

  ip = __builtin__.property(_get_ip)
  link_layer_address = __builtin__.property(_get_link_layer_address)
  origin = __builtin__.property(_get_origin)


  _pyangbind_elements = OrderedDict([('ip', ip), ('link_layer_address', link_layer_address), ('origin', origin), ])


class yc_neighbor_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_neighbors_neighbor(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/subinterfaces/subinterface/ipv4/neighbors/neighbor. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: A list of mappings from IPv4 addresses to
link-layer addresses.

Entries in this list are used as static entries in the
ARP Cache.
  """
  __slots__ = ('_path_helper', '_extmethods', '__ip','__config','__state',)

  _yang_name = 'neighbor'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__ip = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_neighbors_neighbor_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_neighbors_neighbor_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'subinterfaces', 'subinterface', 'ipv4', 'neighbors', 'neighbor']

  def _get_ip(self):
    """
    Getter method for ip, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/neighbors/neighbor/ip (leafref)

    YANG Description: References the configured IP address
    """
    return self.__ip
      
  def _set_ip(self, v, load=False):
    """
    Setter method for ip, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/neighbors/neighbor/ip (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ip is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ip() directly.

    YANG Description: References the configured IP address
    """
    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="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ip must be of a type compatible with leafref""",
          'defined-type': "leafref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)""",
        })

    self.__ip = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ip(self):
    self.__ip = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)


  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/neighbors/neighbor/config (container)

    YANG Description: Configuration data for each configured IPv4
address on the interface
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/neighbors/neighbor/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Configuration data for each configured IPv4
address on the interface
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_neighbors_neighbor_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_neighbors_neighbor_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_neighbors_neighbor_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/neighbors/neighbor/state (container)

    YANG Description: Operational state data for each IPv4 address
configured on the interface
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/neighbors/neighbor/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: Operational state data for each IPv4 address
configured on the interface
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_neighbors_neighbor_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_neighbors_neighbor_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_neighbors_neighbor_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

  ip = __builtin__.property(_get_ip, _set_ip)
  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)


  _pyangbind_elements = OrderedDict([('ip', ip), ('config', config), ('state', state), ])


class yc_neighbors_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_neighbors(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/subinterfaces/subinterface/ipv4/neighbors. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Enclosing container for neighbor list
  """
  __slots__ = ('_path_helper', '_extmethods', '__neighbor',)

  _yang_name = 'neighbors'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__neighbor = YANGDynClass(base=YANGListType("ip",yc_neighbor_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_neighbors_neighbor, yang_name="neighbor", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='ip', extensions=None), is_container='list', yang_name="neighbor", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='list', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'subinterfaces', 'subinterface', 'ipv4', 'neighbors']

  def _get_neighbor(self):
    """
    Getter method for neighbor, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/neighbors/neighbor (list)

    YANG Description: A list of mappings from IPv4 addresses to
link-layer addresses.

Entries in this list are used as static entries in the
ARP Cache.
    """
    return self.__neighbor
      
  def _set_neighbor(self, v, load=False):
    """
    Setter method for neighbor, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/neighbors/neighbor (list)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_neighbor is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_neighbor() directly.

    YANG Description: A list of mappings from IPv4 addresses to
link-layer addresses.

Entries in this list are used as static entries in the
ARP Cache.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGListType("ip",yc_neighbor_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_neighbors_neighbor, yang_name="neighbor", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='ip', extensions=None), is_container='list', yang_name="neighbor", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='list', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """neighbor must be of a type compatible with list""",
          'defined-type': "list",
          'generated-type': """YANGDynClass(base=YANGListType("ip",yc_neighbor_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_neighbors_neighbor, yang_name="neighbor", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='ip', extensions=None), is_container='list', yang_name="neighbor", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='list', is_config=True)""",
        })

    self.__neighbor = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_neighbor(self):
    self.__neighbor = YANGDynClass(base=YANGListType("ip",yc_neighbor_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_neighbors_neighbor, yang_name="neighbor", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='ip', extensions=None), is_container='list', yang_name="neighbor", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='list', is_config=True)

  neighbor = __builtin__.property(_get_neighbor, _set_neighbor)


  _pyangbind_elements = OrderedDict([('neighbor', neighbor), ])


class yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_unnumbered_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/subinterfaces/subinterface/ipv4/unnumbered/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Configuration data for unnumbered interface
  """
  __slots__ = ('_path_helper', '_extmethods', '__enabled',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'subinterfaces', 'subinterface', 'ipv4', 'unnumbered', 'config']

  def _get_enabled(self):
    """
    Getter method for enabled, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/unnumbered/config/enabled (boolean)

    YANG Description: Indicates that the subinterface is unnumbered.  By default
the subinterface is numbered, i.e., expected to have an
IP address configuration.
    """
    return self.__enabled
      
  def _set_enabled(self, v, load=False):
    """
    Setter method for enabled, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/unnumbered/config/enabled (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_enabled is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_enabled() directly.

    YANG Description: Indicates that the subinterface is unnumbered.  By default
the subinterface is numbered, i.e., expected to have an
IP address configuration.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """enabled must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)""",
        })

    self.__enabled = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_enabled(self):
    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)

  enabled = __builtin__.property(_get_enabled, _set_enabled)


  _pyangbind_elements = OrderedDict([('enabled', enabled), ])


class yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_unnumbered_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/subinterfaces/subinterface/ipv4/unnumbered/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Operational state data for unnumbered interfaces
  """
  __slots__ = ('_path_helper', '_extmethods', '__enabled',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', 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 ['access-points', 'access-point', 'interfaces', 'interface', 'subinterfaces', 'subinterface', 'ipv4', 'unnumbered', 'state']

  def _get_enabled(self):
    """
    Getter method for enabled, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/unnumbered/state/enabled (boolean)

    YANG Description: Indicates that the subinterface is unnumbered.  By default
the subinterface is numbered, i.e., expected to have an
IP address configuration.
    """
    return self.__enabled
      
  def _set_enabled(self, v, load=False):
    """
    Setter method for enabled, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/unnumbered/state/enabled (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_enabled is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_enabled() directly.

    YANG Description: Indicates that the subinterface is unnumbered.  By default
the subinterface is numbered, i.e., expected to have an
IP address configuration.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """enabled must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)""",
        })

    self.__enabled = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_enabled(self):
    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)

  enabled = __builtin__.property(_get_enabled)


  _pyangbind_elements = OrderedDict([('enabled', enabled), ])


class yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_unnumbered_interface_ref_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/subinterfaces/subinterface/ipv4/unnumbered/interface-ref/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Configured reference to interface / subinterface
  """
  __slots__ = ('_path_helper', '_extmethods', '__interface','__subinterface',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__interface = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="interface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)
    self.__subinterface = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="subinterface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'subinterfaces', 'subinterface', 'ipv4', 'unnumbered', 'interface-ref', 'config']

  def _get_interface(self):
    """
    Getter method for interface, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/unnumbered/interface_ref/config/interface (leafref)

    YANG Description: Reference to a base interface.  If a reference to a
subinterface is required, this leaf must be specified
to indicate the base interface.
    """
    return self.__interface
      
  def _set_interface(self, v, load=False):
    """
    Setter method for interface, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/unnumbered/interface_ref/config/interface (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_interface is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_interface() directly.

    YANG Description: Reference to a base interface.  If a reference to a
subinterface is required, this leaf must be specified
to indicate the base interface.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="interface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """interface must be of a type compatible with leafref""",
          'defined-type': "leafref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="interface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)""",
        })

    self.__interface = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_interface(self):
    self.__interface = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="interface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)


  def _get_subinterface(self):
    """
    Getter method for subinterface, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/unnumbered/interface_ref/config/subinterface (leafref)

    YANG Description: Reference to a subinterface -- this requires the base
interface to be specified using the interface leaf in
this container.  If only a reference to a base interface
is requuired, this leaf should not be set.
    """
    return self.__subinterface
      
  def _set_subinterface(self, v, load=False):
    """
    Setter method for subinterface, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/unnumbered/interface_ref/config/subinterface (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_subinterface is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_subinterface() directly.

    YANG Description: Reference to a subinterface -- this requires the base
interface to be specified using the interface leaf in
this container.  If only a reference to a base interface
is requuired, this leaf should not be set.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="subinterface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """subinterface must be of a type compatible with leafref""",
          'defined-type': "leafref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="subinterface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)""",
        })

    self.__subinterface = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_subinterface(self):
    self.__subinterface = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="subinterface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)

  interface = __builtin__.property(_get_interface, _set_interface)
  subinterface = __builtin__.property(_get_subinterface, _set_subinterface)


  _pyangbind_elements = OrderedDict([('interface', interface), ('subinterface', subinterface), ])


class yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_unnumbered_interface_ref_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/subinterfaces/subinterface/ipv4/unnumbered/interface-ref/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Operational state for interface-ref
  """
  __slots__ = ('_path_helper', '_extmethods', '__interface','__subinterface',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__interface = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="interface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=False)
    self.__subinterface = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="subinterface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', 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 ['access-points', 'access-point', 'interfaces', 'interface', 'subinterfaces', 'subinterface', 'ipv4', 'unnumbered', 'interface-ref', 'state']

  def _get_interface(self):
    """
    Getter method for interface, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/unnumbered/interface_ref/state/interface (leafref)

    YANG Description: Reference to a base interface.  If a reference to a
subinterface is required, this leaf must be specified
to indicate the base interface.
    """
    return self.__interface
      
  def _set_interface(self, v, load=False):
    """
    Setter method for interface, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/unnumbered/interface_ref/state/interface (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_interface is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_interface() directly.

    YANG Description: Reference to a base interface.  If a reference to a
subinterface is required, this leaf must be specified
to indicate the base interface.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="interface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """interface must be of a type compatible with leafref""",
          'defined-type': "leafref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="interface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=False)""",
        })

    self.__interface = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_interface(self):
    self.__interface = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="interface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=False)


  def _get_subinterface(self):
    """
    Getter method for subinterface, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/unnumbered/interface_ref/state/subinterface (leafref)

    YANG Description: Reference to a subinterface -- this requires the base
interface to be specified using the interface leaf in
this container.  If only a reference to a base interface
is requuired, this leaf should not be set.
    """
    return self.__subinterface
      
  def _set_subinterface(self, v, load=False):
    """
    Setter method for subinterface, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/unnumbered/interface_ref/state/subinterface (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_subinterface is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_subinterface() directly.

    YANG Description: Reference to a subinterface -- this requires the base
interface to be specified using the interface leaf in
this container.  If only a reference to a base interface
is requuired, this leaf should not be set.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="subinterface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """subinterface must be of a type compatible with leafref""",
          'defined-type': "leafref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="subinterface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=False)""",
        })

    self.__subinterface = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_subinterface(self):
    self.__subinterface = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="subinterface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=False)

  interface = __builtin__.property(_get_interface)
  subinterface = __builtin__.property(_get_subinterface)


  _pyangbind_elements = OrderedDict([('interface', interface), ('subinterface', subinterface), ])


class yc_interface_ref_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_unnumbered_interface_ref(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/subinterfaces/subinterface/ipv4/unnumbered/interface-ref. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Reference to an interface or subinterface. The interface
that is being referenced is uniquely referenced based on
the specified interface and subinterface leaves. In contexts
where a Layer 3 interface is to be referenced, both the
interface and subinterface leaves must be populated, as
Layer 3 configuration within the OpenConfig models is
associated with a subinterface. In the case where a
Layer 2 interface is to be referenced, only the
interface is specified.

The interface/subinterface leaf tuple must be used as
the means by which the interface is specified, regardless
of any other context information (e.g., key in a list).
  """
  __slots__ = ('_path_helper', '_extmethods', '__config','__state',)

  _yang_name = 'interface-ref'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_unnumbered_interface_ref_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_unnumbered_interface_ref_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'subinterfaces', 'subinterface', 'ipv4', 'unnumbered', 'interface-ref']

  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/unnumbered/interface_ref/config (container)

    YANG Description: Configured reference to interface / subinterface
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/unnumbered/interface_ref/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Configured reference to interface / subinterface
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_unnumbered_interface_ref_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_unnumbered_interface_ref_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_unnumbered_interface_ref_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/unnumbered/interface_ref/state (container)

    YANG Description: Operational state for interface-ref
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/unnumbered/interface_ref/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: Operational state for interface-ref
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_unnumbered_interface_ref_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_unnumbered_interface_ref_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_unnumbered_interface_ref_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)


  _pyangbind_elements = OrderedDict([('config', config), ('state', state), ])


class yc_unnumbered_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_unnumbered(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/subinterfaces/subinterface/ipv4/unnumbered. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Top-level container for setting unnumbered interfaces.
Includes reference the interface that provides the
address information
  """
  __slots__ = ('_path_helper', '_extmethods', '__config','__state','__interface_ref',)

  _yang_name = 'unnumbered'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_unnumbered_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_unnumbered_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__interface_ref = YANGDynClass(base=yc_interface_ref_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_unnumbered_interface_ref, is_container='container', yang_name="interface-ref", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'subinterfaces', 'subinterface', 'ipv4', 'unnumbered']

  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/unnumbered/config (container)

    YANG Description: Configuration data for unnumbered interface
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/unnumbered/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Configuration data for unnumbered interface
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_unnumbered_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_unnumbered_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_unnumbered_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/unnumbered/state (container)

    YANG Description: Operational state data for unnumbered interfaces
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/unnumbered/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: Operational state data for unnumbered interfaces
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_unnumbered_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_unnumbered_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_unnumbered_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_interface_ref(self):
    """
    Getter method for interface_ref, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/unnumbered/interface_ref (container)

    YANG Description: Reference to an interface or subinterface. The interface
that is being referenced is uniquely referenced based on
the specified interface and subinterface leaves. In contexts
where a Layer 3 interface is to be referenced, both the
interface and subinterface leaves must be populated, as
Layer 3 configuration within the OpenConfig models is
associated with a subinterface. In the case where a
Layer 2 interface is to be referenced, only the
interface is specified.

The interface/subinterface leaf tuple must be used as
the means by which the interface is specified, regardless
of any other context information (e.g., key in a list).
    """
    return self.__interface_ref
      
  def _set_interface_ref(self, v, load=False):
    """
    Setter method for interface_ref, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/unnumbered/interface_ref (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_interface_ref is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_interface_ref() directly.

    YANG Description: Reference to an interface or subinterface. The interface
that is being referenced is uniquely referenced based on
the specified interface and subinterface leaves. In contexts
where a Layer 3 interface is to be referenced, both the
interface and subinterface leaves must be populated, as
Layer 3 configuration within the OpenConfig models is
associated with a subinterface. In the case where a
Layer 2 interface is to be referenced, only the
interface is specified.

The interface/subinterface leaf tuple must be used as
the means by which the interface is specified, regardless
of any other context information (e.g., key in a list).
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_interface_ref_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_unnumbered_interface_ref, is_container='container', yang_name="interface-ref", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """interface_ref must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_interface_ref_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_unnumbered_interface_ref, is_container='container', yang_name="interface-ref", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

    self.__interface_ref = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_interface_ref(self):
    self.__interface_ref = YANGDynClass(base=yc_interface_ref_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_unnumbered_interface_ref, is_container='container', yang_name="interface-ref", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)
  interface_ref = __builtin__.property(_get_interface_ref, _set_interface_ref)


  _pyangbind_elements = OrderedDict([('config', config), ('state', state), ('interface_ref', interface_ref), ])


class yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/subinterfaces/subinterface/ipv4/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Top-level IPv4 configuration data for the interface
  """
  __slots__ = ('_path_helper', '_extmethods', '__enabled','__mtu','__dhcp_client',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)
    self.__mtu = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['68..max']}), is_leaf=True, yang_name="mtu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint16', is_config=True)
    self.__dhcp_client = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="dhcp-client", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'subinterfaces', 'subinterface', 'ipv4', 'config']

  def _get_enabled(self):
    """
    Getter method for enabled, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/config/enabled (boolean)

    YANG Description: Controls whether IPv4 is enabled or disabled on this
interface.  When IPv4 is enabled, this interface is
connected to an IPv4 stack, and the interface can send
and receive IPv4 packets.
    """
    return self.__enabled
      
  def _set_enabled(self, v, load=False):
    """
    Setter method for enabled, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/config/enabled (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_enabled is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_enabled() directly.

    YANG Description: Controls whether IPv4 is enabled or disabled on this
interface.  When IPv4 is enabled, this interface is
connected to an IPv4 stack, and the interface can send
and receive IPv4 packets.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """enabled must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)""",
        })

    self.__enabled = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_enabled(self):
    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)


  def _get_mtu(self):
    """
    Getter method for mtu, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/config/mtu (uint16)

    YANG Description: The size, in octets, of the largest IPv4 packet that the
interface will send and receive.

The server may restrict the allowed values for this leaf,
depending on the interface's type.

If this leaf is not configured, the operationally used MTU
depends on the interface's type.
    """
    return self.__mtu
      
  def _set_mtu(self, v, load=False):
    """
    Setter method for mtu, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/config/mtu (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mtu is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mtu() directly.

    YANG Description: The size, in octets, of the largest IPv4 packet that the
interface will send and receive.

The server may restrict the allowed values for this leaf,
depending on the interface's type.

If this leaf is not configured, the operationally used MTU
depends on the interface's type.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['68..max']}), is_leaf=True, yang_name="mtu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint16', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mtu must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['68..max']}), is_leaf=True, yang_name="mtu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint16', is_config=True)""",
        })

    self.__mtu = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mtu(self):
    self.__mtu = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['68..max']}), is_leaf=True, yang_name="mtu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint16', is_config=True)


  def _get_dhcp_client(self):
    """
    Getter method for dhcp_client, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/config/dhcp_client (boolean)

    YANG Description: Enables a DHCP client on the interface in order to request
an address
    """
    return self.__dhcp_client
      
  def _set_dhcp_client(self, v, load=False):
    """
    Setter method for dhcp_client, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/config/dhcp_client (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dhcp_client is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dhcp_client() directly.

    YANG Description: Enables a DHCP client on the interface in order to request
an address
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="dhcp-client", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dhcp_client must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="dhcp-client", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)""",
        })

    self.__dhcp_client = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dhcp_client(self):
    self.__dhcp_client = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="dhcp-client", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)

  enabled = __builtin__.property(_get_enabled, _set_enabled)
  mtu = __builtin__.property(_get_mtu, _set_mtu)
  dhcp_client = __builtin__.property(_get_dhcp_client, _set_dhcp_client)


  _pyangbind_elements = OrderedDict([('enabled', enabled), ('mtu', mtu), ('dhcp_client', dhcp_client), ])


class yc_counters_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_state_counters(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/subinterfaces/subinterface/ipv4/state/counters. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Packet and byte counters for IP transmission and
reception for the address family.
  """
  __slots__ = ('_path_helper', '_extmethods', '__in_pkts','__in_octets','__in_error_pkts','__in_forwarded_pkts','__in_forwarded_octets','__in_discarded_pkts','__out_pkts','__out_octets','__out_error_pkts','__out_forwarded_pkts','__out_forwarded_octets','__out_discarded_pkts',)

  _yang_name = 'counters'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__in_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__in_octets = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__in_error_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-error-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__in_forwarded_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-forwarded-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__in_forwarded_octets = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-forwarded-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__in_discarded_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-discarded-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__out_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__out_octets = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__out_error_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-error-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__out_forwarded_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-forwarded-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__out_forwarded_octets = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-forwarded-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__out_discarded_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-discarded-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', 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 ['access-points', 'access-point', 'interfaces', 'interface', 'subinterfaces', 'subinterface', 'ipv4', 'state', 'counters']

  def _get_in_pkts(self):
    """
    Getter method for in_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/state/counters/in_pkts (oc-yang:counter64)

    YANG Description: The total number of IP packets received for the specified
address family, including those received in error
    """
    return self.__in_pkts
      
  def _set_in_pkts(self, v, load=False):
    """
    Setter method for in_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/state/counters/in_pkts (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_in_pkts is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_in_pkts() directly.

    YANG Description: The total number of IP packets received for the specified
address family, including those received in error
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """in_pkts must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__in_pkts = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_in_pkts(self):
    self.__in_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_in_octets(self):
    """
    Getter method for in_octets, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/state/counters/in_octets (oc-yang:counter64)

    YANG Description: The total number of octets received in input IP packets
for the specified address family, including those received
in error.
    """
    return self.__in_octets
      
  def _set_in_octets(self, v, load=False):
    """
    Setter method for in_octets, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/state/counters/in_octets (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_in_octets is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_in_octets() directly.

    YANG Description: The total number of octets received in input IP packets
for the specified address family, including those received
in error.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """in_octets must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__in_octets = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_in_octets(self):
    self.__in_octets = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_in_error_pkts(self):
    """
    Getter method for in_error_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/state/counters/in_error_pkts (oc-yang:counter64)

    YANG Description: Number of IP packets discarded due to errors for the
specified address family, including errors in the IP
header, no route found to the IP destination, invalid
address, unknown protocol, etc.
    """
    return self.__in_error_pkts
      
  def _set_in_error_pkts(self, v, load=False):
    """
    Setter method for in_error_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/state/counters/in_error_pkts (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_in_error_pkts is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_in_error_pkts() directly.

    YANG Description: Number of IP packets discarded due to errors for the
specified address family, including errors in the IP
header, no route found to the IP destination, invalid
address, unknown protocol, etc.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-error-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """in_error_pkts must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-error-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__in_error_pkts = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_in_error_pkts(self):
    self.__in_error_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-error-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_in_forwarded_pkts(self):
    """
    Getter method for in_forwarded_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/state/counters/in_forwarded_pkts (oc-yang:counter64)

    YANG Description: The number of input packets for which the device was not
their final IP destination and for which the device
attempted to find a route to forward them to that final
destination.
    """
    return self.__in_forwarded_pkts
      
  def _set_in_forwarded_pkts(self, v, load=False):
    """
    Setter method for in_forwarded_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/state/counters/in_forwarded_pkts (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_in_forwarded_pkts is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_in_forwarded_pkts() directly.

    YANG Description: The number of input packets for which the device was not
their final IP destination and for which the device
attempted to find a route to forward them to that final
destination.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-forwarded-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """in_forwarded_pkts must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-forwarded-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__in_forwarded_pkts = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_in_forwarded_pkts(self):
    self.__in_forwarded_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-forwarded-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_in_forwarded_octets(self):
    """
    Getter method for in_forwarded_octets, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/state/counters/in_forwarded_octets (oc-yang:counter64)

    YANG Description: The number of octets received in input IP packets
for the specified address family for which the device was
not their final IP destination and for which the
device attempted to find a route to forward them to that
final destination.
    """
    return self.__in_forwarded_octets
      
  def _set_in_forwarded_octets(self, v, load=False):
    """
    Setter method for in_forwarded_octets, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/state/counters/in_forwarded_octets (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_in_forwarded_octets is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_in_forwarded_octets() directly.

    YANG Description: The number of octets received in input IP packets
for the specified address family for which the device was
not their final IP destination and for which the
device attempted to find a route to forward them to that
final destination.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-forwarded-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """in_forwarded_octets must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-forwarded-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__in_forwarded_octets = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_in_forwarded_octets(self):
    self.__in_forwarded_octets = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-forwarded-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_in_discarded_pkts(self):
    """
    Getter method for in_discarded_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/state/counters/in_discarded_pkts (oc-yang:counter64)

    YANG Description: The number of input IP packets for the
specified address family, for which no problems were
encountered to prevent their continued processing, but
were discarded (e.g., for lack of buffer space).
    """
    return self.__in_discarded_pkts
      
  def _set_in_discarded_pkts(self, v, load=False):
    """
    Setter method for in_discarded_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/state/counters/in_discarded_pkts (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_in_discarded_pkts is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_in_discarded_pkts() directly.

    YANG Description: The number of input IP packets for the
specified address family, for which no problems were
encountered to prevent their continued processing, but
were discarded (e.g., for lack of buffer space).
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-discarded-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """in_discarded_pkts must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-discarded-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__in_discarded_pkts = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_in_discarded_pkts(self):
    self.__in_discarded_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-discarded-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_out_pkts(self):
    """
    Getter method for out_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/state/counters/out_pkts (oc-yang:counter64)

    YANG Description: The total number of IP packets for the
specified address family that the device supplied
to the lower layers for transmission.  This includes
packets generated locally and those forwarded by the
device.
    """
    return self.__out_pkts
      
  def _set_out_pkts(self, v, load=False):
    """
    Setter method for out_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/state/counters/out_pkts (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_out_pkts is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_out_pkts() directly.

    YANG Description: The total number of IP packets for the
specified address family that the device supplied
to the lower layers for transmission.  This includes
packets generated locally and those forwarded by the
device.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """out_pkts must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__out_pkts = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_out_pkts(self):
    self.__out_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_out_octets(self):
    """
    Getter method for out_octets, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/state/counters/out_octets (oc-yang:counter64)

    YANG Description: The total number of octets in IP packets for the
specified address family that the device
supplied to the lower layers for transmission.  This
includes packets generated locally and those forwarded by
the device.
    """
    return self.__out_octets
      
  def _set_out_octets(self, v, load=False):
    """
    Setter method for out_octets, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/state/counters/out_octets (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_out_octets is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_out_octets() directly.

    YANG Description: The total number of octets in IP packets for the
specified address family that the device
supplied to the lower layers for transmission.  This
includes packets generated locally and those forwarded by
the device.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """out_octets must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__out_octets = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_out_octets(self):
    self.__out_octets = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_out_error_pkts(self):
    """
    Getter method for out_error_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/state/counters/out_error_pkts (oc-yang:counter64)

    YANG Description: Number of IP packets for the specified address family
locally generated and discarded due to errors, including
no route found to the IP destination.
    """
    return self.__out_error_pkts
      
  def _set_out_error_pkts(self, v, load=False):
    """
    Setter method for out_error_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/state/counters/out_error_pkts (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_out_error_pkts is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_out_error_pkts() directly.

    YANG Description: Number of IP packets for the specified address family
locally generated and discarded due to errors, including
no route found to the IP destination.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-error-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """out_error_pkts must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-error-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__out_error_pkts = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_out_error_pkts(self):
    self.__out_error_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-error-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_out_forwarded_pkts(self):
    """
    Getter method for out_forwarded_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/state/counters/out_forwarded_pkts (oc-yang:counter64)

    YANG Description: The number of packets for which this entity was not their
final IP destination and for which it was successful in
finding a path to their final destination.
    """
    return self.__out_forwarded_pkts
      
  def _set_out_forwarded_pkts(self, v, load=False):
    """
    Setter method for out_forwarded_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/state/counters/out_forwarded_pkts (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_out_forwarded_pkts is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_out_forwarded_pkts() directly.

    YANG Description: The number of packets for which this entity was not their
final IP destination and for which it was successful in
finding a path to their final destination.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-forwarded-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """out_forwarded_pkts must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-forwarded-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__out_forwarded_pkts = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_out_forwarded_pkts(self):
    self.__out_forwarded_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-forwarded-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_out_forwarded_octets(self):
    """
    Getter method for out_forwarded_octets, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/state/counters/out_forwarded_octets (oc-yang:counter64)

    YANG Description: The number of octets in packets for which this entity was
not their final IP destination and for which it was
successful in finding a path to their final destination.
    """
    return self.__out_forwarded_octets
      
  def _set_out_forwarded_octets(self, v, load=False):
    """
    Setter method for out_forwarded_octets, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/state/counters/out_forwarded_octets (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_out_forwarded_octets is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_out_forwarded_octets() directly.

    YANG Description: The number of octets in packets for which this entity was
not their final IP destination and for which it was
successful in finding a path to their final destination.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-forwarded-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """out_forwarded_octets must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-forwarded-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__out_forwarded_octets = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_out_forwarded_octets(self):
    self.__out_forwarded_octets = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-forwarded-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_out_discarded_pkts(self):
    """
    Getter method for out_discarded_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/state/counters/out_discarded_pkts (oc-yang:counter64)

    YANG Description: The number of output IP packets for the
specified address family for which no problem was
encountered to prevent their transmission to their
destination, but were discarded (e.g., for lack of
buffer space).
    """
    return self.__out_discarded_pkts
      
  def _set_out_discarded_pkts(self, v, load=False):
    """
    Setter method for out_discarded_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/state/counters/out_discarded_pkts (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_out_discarded_pkts is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_out_discarded_pkts() directly.

    YANG Description: The number of output IP packets for the
specified address family for which no problem was
encountered to prevent their transmission to their
destination, but were discarded (e.g., for lack of
buffer space).
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-discarded-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """out_discarded_pkts must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-discarded-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__out_discarded_pkts = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_out_discarded_pkts(self):
    self.__out_discarded_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-discarded-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)

  in_pkts = __builtin__.property(_get_in_pkts)
  in_octets = __builtin__.property(_get_in_octets)
  in_error_pkts = __builtin__.property(_get_in_error_pkts)
  in_forwarded_pkts = __builtin__.property(_get_in_forwarded_pkts)
  in_forwarded_octets = __builtin__.property(_get_in_forwarded_octets)
  in_discarded_pkts = __builtin__.property(_get_in_discarded_pkts)
  out_pkts = __builtin__.property(_get_out_pkts)
  out_octets = __builtin__.property(_get_out_octets)
  out_error_pkts = __builtin__.property(_get_out_error_pkts)
  out_forwarded_pkts = __builtin__.property(_get_out_forwarded_pkts)
  out_forwarded_octets = __builtin__.property(_get_out_forwarded_octets)
  out_discarded_pkts = __builtin__.property(_get_out_discarded_pkts)


  _pyangbind_elements = OrderedDict([('in_pkts', in_pkts), ('in_octets', in_octets), ('in_error_pkts', in_error_pkts), ('in_forwarded_pkts', in_forwarded_pkts), ('in_forwarded_octets', in_forwarded_octets), ('in_discarded_pkts', in_discarded_pkts), ('out_pkts', out_pkts), ('out_octets', out_octets), ('out_error_pkts', out_error_pkts), ('out_forwarded_pkts', out_forwarded_pkts), ('out_forwarded_octets', out_forwarded_octets), ('out_discarded_pkts', out_discarded_pkts), ])


class yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/subinterfaces/subinterface/ipv4/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Top level IPv4 operational state data
  """
  __slots__ = ('_path_helper', '_extmethods', '__enabled','__mtu','__dhcp_client','__counters',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)
    self.__mtu = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['68..max']}), is_leaf=True, yang_name="mtu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint16', is_config=False)
    self.__dhcp_client = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="dhcp-client", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)
    self.__counters = YANGDynClass(base=yc_counters_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_state_counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', 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 ['access-points', 'access-point', 'interfaces', 'interface', 'subinterfaces', 'subinterface', 'ipv4', 'state']

  def _get_enabled(self):
    """
    Getter method for enabled, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/state/enabled (boolean)

    YANG Description: Controls whether IPv4 is enabled or disabled on this
interface.  When IPv4 is enabled, this interface is
connected to an IPv4 stack, and the interface can send
and receive IPv4 packets.
    """
    return self.__enabled
      
  def _set_enabled(self, v, load=False):
    """
    Setter method for enabled, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/state/enabled (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_enabled is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_enabled() directly.

    YANG Description: Controls whether IPv4 is enabled or disabled on this
interface.  When IPv4 is enabled, this interface is
connected to an IPv4 stack, and the interface can send
and receive IPv4 packets.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """enabled must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)""",
        })

    self.__enabled = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_enabled(self):
    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)


  def _get_mtu(self):
    """
    Getter method for mtu, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/state/mtu (uint16)

    YANG Description: The size, in octets, of the largest IPv4 packet that the
interface will send and receive.

The server may restrict the allowed values for this leaf,
depending on the interface's type.

If this leaf is not configured, the operationally used MTU
depends on the interface's type.
    """
    return self.__mtu
      
  def _set_mtu(self, v, load=False):
    """
    Setter method for mtu, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/state/mtu (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mtu is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mtu() directly.

    YANG Description: The size, in octets, of the largest IPv4 packet that the
interface will send and receive.

The server may restrict the allowed values for this leaf,
depending on the interface's type.

If this leaf is not configured, the operationally used MTU
depends on the interface's type.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['68..max']}), is_leaf=True, yang_name="mtu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint16', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mtu must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['68..max']}), is_leaf=True, yang_name="mtu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint16', is_config=False)""",
        })

    self.__mtu = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mtu(self):
    self.__mtu = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['68..max']}), is_leaf=True, yang_name="mtu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint16', is_config=False)


  def _get_dhcp_client(self):
    """
    Getter method for dhcp_client, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/state/dhcp_client (boolean)

    YANG Description: Enables a DHCP client on the interface in order to request
an address
    """
    return self.__dhcp_client
      
  def _set_dhcp_client(self, v, load=False):
    """
    Setter method for dhcp_client, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/state/dhcp_client (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dhcp_client is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dhcp_client() directly.

    YANG Description: Enables a DHCP client on the interface in order to request
an address
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="dhcp-client", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dhcp_client must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="dhcp-client", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)""",
        })

    self.__dhcp_client = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dhcp_client(self):
    self.__dhcp_client = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="dhcp-client", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)


  def _get_counters(self):
    """
    Getter method for counters, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/state/counters (container)

    YANG Description: Packet and byte counters for IP transmission and
reception for the address family.
    """
    return self.__counters
      
  def _set_counters(self, v, load=False):
    """
    Setter method for counters, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/state/counters (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_counters is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_counters() directly.

    YANG Description: Packet and byte counters for IP transmission and
reception for the address family.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_counters_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_state_counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """counters must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_counters_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_state_counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=False)""",
        })

    self.__counters = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_counters(self):
    self.__counters = YANGDynClass(base=yc_counters_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_state_counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=False)

  enabled = __builtin__.property(_get_enabled)
  mtu = __builtin__.property(_get_mtu)
  dhcp_client = __builtin__.property(_get_dhcp_client)
  counters = __builtin__.property(_get_counters)


  _pyangbind_elements = OrderedDict([('enabled', enabled), ('mtu', mtu), ('dhcp_client', dhcp_client), ('counters', counters), ])


class yc_ipv4_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/subinterfaces/subinterface/ipv4. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Parameters for the IPv4 address family.
  """
  __slots__ = ('_path_helper', '_extmethods', '__addresses','__proxy_arp','__neighbors','__unnumbered','__config','__state',)

  _yang_name = 'ipv4'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__addresses = YANGDynClass(base=yc_addresses_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_addresses, is_container='container', yang_name="addresses", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__proxy_arp = YANGDynClass(base=yc_proxy_arp_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_proxy_arp, is_container='container', yang_name="proxy-arp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__neighbors = YANGDynClass(base=yc_neighbors_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_neighbors, is_container='container', yang_name="neighbors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__unnumbered = YANGDynClass(base=yc_unnumbered_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_unnumbered, is_container='container', yang_name="unnumbered", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'subinterfaces', 'subinterface', 'ipv4']

  def _get_addresses(self):
    """
    Getter method for addresses, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/addresses (container)

    YANG Description: Enclosing container for address list
    """
    return self.__addresses
      
  def _set_addresses(self, v, load=False):
    """
    Setter method for addresses, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/addresses (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_addresses is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_addresses() directly.

    YANG Description: Enclosing container for address list
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_addresses_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_addresses, is_container='container', yang_name="addresses", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """addresses must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_addresses_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_addresses, is_container='container', yang_name="addresses", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

    self.__addresses = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_addresses(self):
    self.__addresses = YANGDynClass(base=yc_addresses_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_addresses, is_container='container', yang_name="addresses", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_proxy_arp(self):
    """
    Getter method for proxy_arp, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/proxy_arp (container)

    YANG Description: Configuration and operational state parameters
relating to proxy ARP. This functionality allows a
system to respond to ARP requests that are not
explicitly destined to the local system.
    """
    return self.__proxy_arp
      
  def _set_proxy_arp(self, v, load=False):
    """
    Setter method for proxy_arp, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/proxy_arp (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_proxy_arp is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_proxy_arp() directly.

    YANG Description: Configuration and operational state parameters
relating to proxy ARP. This functionality allows a
system to respond to ARP requests that are not
explicitly destined to the local system.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_proxy_arp_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_proxy_arp, is_container='container', yang_name="proxy-arp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """proxy_arp must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_proxy_arp_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_proxy_arp, is_container='container', yang_name="proxy-arp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

    self.__proxy_arp = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_proxy_arp(self):
    self.__proxy_arp = YANGDynClass(base=yc_proxy_arp_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_proxy_arp, is_container='container', yang_name="proxy-arp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_neighbors(self):
    """
    Getter method for neighbors, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/neighbors (container)

    YANG Description: Enclosing container for neighbor list
    """
    return self.__neighbors
      
  def _set_neighbors(self, v, load=False):
    """
    Setter method for neighbors, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/neighbors (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_neighbors is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_neighbors() directly.

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

    self.__neighbors = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_neighbors(self):
    self.__neighbors = YANGDynClass(base=yc_neighbors_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_neighbors, is_container='container', yang_name="neighbors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_unnumbered(self):
    """
    Getter method for unnumbered, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/unnumbered (container)

    YANG Description: Top-level container for setting unnumbered interfaces.
Includes reference the interface that provides the
address information
    """
    return self.__unnumbered
      
  def _set_unnumbered(self, v, load=False):
    """
    Setter method for unnumbered, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/unnumbered (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_unnumbered is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_unnumbered() directly.

    YANG Description: Top-level container for setting unnumbered interfaces.
Includes reference the interface that provides the
address information
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_unnumbered_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_unnumbered, is_container='container', yang_name="unnumbered", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """unnumbered must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_unnumbered_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_unnumbered, is_container='container', yang_name="unnumbered", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

    self.__unnumbered = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_unnumbered(self):
    self.__unnumbered = YANGDynClass(base=yc_unnumbered_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_unnumbered, is_container='container', yang_name="unnumbered", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/config (container)

    YANG Description: Top-level IPv4 configuration data for the interface
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Top-level IPv4 configuration data for the interface
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/state (container)

    YANG Description: Top level IPv4 operational state data
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4/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: Top level IPv4 operational state data
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

  addresses = __builtin__.property(_get_addresses, _set_addresses)
  proxy_arp = __builtin__.property(_get_proxy_arp, _set_proxy_arp)
  neighbors = __builtin__.property(_get_neighbors, _set_neighbors)
  unnumbered = __builtin__.property(_get_unnumbered, _set_unnumbered)
  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)


  _pyangbind_elements = OrderedDict([('addresses', addresses), ('proxy_arp', proxy_arp), ('neighbors', neighbors), ('unnumbered', unnumbered), ('config', config), ('state', state), ])


class yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_addresses_address_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/subinterfaces/subinterface/ipv6/addresses/address/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Configuration data for each IPv6 address on
the interface
  """
  __slots__ = ('_path_helper', '_extmethods', '__ip','__prefix_length','__type',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__ip = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}), is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv6-address', is_config=True)
    self.__prefix_length = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..128']}), is_leaf=True, yang_name="prefix-length", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint8', is_config=True)
    self.__type = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'GLOBAL_UNICAST': {}, 'LINK_LOCAL_UNICAST': {}},), default=six.text_type("GLOBAL_UNICAST"), is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv6-address-type', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'subinterfaces', 'subinterface', 'ipv6', 'addresses', 'address', 'config']

  def _get_ip(self):
    """
    Getter method for ip, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/addresses/address/config/ip (oc-inet:ipv6-address)

    YANG Description: The IPv6 address on the interface.
    """
    return self.__ip
      
  def _set_ip(self, v, load=False):
    """
    Setter method for ip, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/addresses/address/config/ip (oc-inet:ipv6-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ip is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ip() directly.

    YANG Description: The IPv6 address on the interface.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}), is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv6-address', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ip must be of a type compatible with oc-inet:ipv6-address""",
          'defined-type': "oc-inet:ipv6-address",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}), is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv6-address', is_config=True)""",
        })

    self.__ip = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ip(self):
    self.__ip = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}), is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv6-address', is_config=True)


  def _get_prefix_length(self):
    """
    Getter method for prefix_length, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/addresses/address/config/prefix_length (uint8)

    YANG Description: The length of the subnet prefix.
    """
    return self.__prefix_length
      
  def _set_prefix_length(self, v, load=False):
    """
    Setter method for prefix_length, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/addresses/address/config/prefix_length (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_prefix_length is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_prefix_length() directly.

    YANG Description: The length of the subnet prefix.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..128']}), is_leaf=True, yang_name="prefix-length", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint8', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """prefix_length must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..128']}), is_leaf=True, yang_name="prefix-length", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint8', is_config=True)""",
        })

    self.__prefix_length = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_prefix_length(self):
    self.__prefix_length = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..128']}), is_leaf=True, yang_name="prefix-length", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint8', is_config=True)


  def _get_type(self):
    """
    Getter method for type, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/addresses/address/config/type (oc-inet:ipv6-address-type)

    YANG Description: Specifies the explicit type of the IPv6 address being assigned
to the interface. By default, addresses are assumed to be
global unicast.  Where a link-local address is to be explicitly
configured, this leaf should be set to LINK_LOCAL.
    """
    return self.__type
      
  def _set_type(self, v, load=False):
    """
    Setter method for type, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/addresses/address/config/type (oc-inet:ipv6-address-type)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_type is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_type() directly.

    YANG Description: Specifies the explicit type of the IPv6 address being assigned
to the interface. By default, addresses are assumed to be
global unicast.  Where a link-local address is to be explicitly
configured, this leaf should be set to LINK_LOCAL.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'GLOBAL_UNICAST': {}, 'LINK_LOCAL_UNICAST': {}},), default=six.text_type("GLOBAL_UNICAST"), is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv6-address-type', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """type must be of a type compatible with oc-inet:ipv6-address-type""",
          'defined-type': "oc-inet:ipv6-address-type",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'GLOBAL_UNICAST': {}, 'LINK_LOCAL_UNICAST': {}},), default=six.text_type("GLOBAL_UNICAST"), is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv6-address-type', is_config=True)""",
        })

    self.__type = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_type(self):
    self.__type = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'GLOBAL_UNICAST': {}, 'LINK_LOCAL_UNICAST': {}},), default=six.text_type("GLOBAL_UNICAST"), is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv6-address-type', is_config=True)

  ip = __builtin__.property(_get_ip, _set_ip)
  prefix_length = __builtin__.property(_get_prefix_length, _set_prefix_length)
  type = __builtin__.property(_get_type, _set_type)


  _pyangbind_elements = OrderedDict([('ip', ip), ('prefix_length', prefix_length), ('type', type), ])


class yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_addresses_address_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/subinterfaces/subinterface/ipv6/addresses/address/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: State data for each IPv6 address on the
interface
  """
  __slots__ = ('_path_helper', '_extmethods', '__ip','__prefix_length','__type','__origin','__status',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__ip = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}), is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv6-address', is_config=False)
    self.__prefix_length = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..128']}), is_leaf=True, yang_name="prefix-length", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint8', is_config=False)
    self.__type = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'GLOBAL_UNICAST': {}, 'LINK_LOCAL_UNICAST': {}},), default=six.text_type("GLOBAL_UNICAST"), is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv6-address-type', is_config=False)
    self.__origin = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OTHER': {}, 'STATIC': {}, 'DHCP': {}, 'LINK_LAYER': {}, 'RANDOM': {}},), is_leaf=True, yang_name="origin", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='ip-address-origin', is_config=False)
    self.__status = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'PREFERRED': {}, 'DEPRECATED': {}, 'INVALID': {}, 'INACCESSIBLE': {}, 'UNKNOWN': {}, 'TENTATIVE': {}, 'DUPLICATE': {}, 'OPTIMISTIC': {}},), is_leaf=True, yang_name="status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', 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 ['access-points', 'access-point', 'interfaces', 'interface', 'subinterfaces', 'subinterface', 'ipv6', 'addresses', 'address', 'state']

  def _get_ip(self):
    """
    Getter method for ip, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/addresses/address/state/ip (oc-inet:ipv6-address)

    YANG Description: The IPv6 address on the interface.
    """
    return self.__ip
      
  def _set_ip(self, v, load=False):
    """
    Setter method for ip, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/addresses/address/state/ip (oc-inet:ipv6-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ip is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ip() directly.

    YANG Description: The IPv6 address on the interface.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}), is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv6-address', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ip must be of a type compatible with oc-inet:ipv6-address""",
          'defined-type': "oc-inet:ipv6-address",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}), is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv6-address', is_config=False)""",
        })

    self.__ip = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ip(self):
    self.__ip = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}), is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv6-address', is_config=False)


  def _get_prefix_length(self):
    """
    Getter method for prefix_length, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/addresses/address/state/prefix_length (uint8)

    YANG Description: The length of the subnet prefix.
    """
    return self.__prefix_length
      
  def _set_prefix_length(self, v, load=False):
    """
    Setter method for prefix_length, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/addresses/address/state/prefix_length (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_prefix_length is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_prefix_length() directly.

    YANG Description: The length of the subnet prefix.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..128']}), is_leaf=True, yang_name="prefix-length", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """prefix_length must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..128']}), is_leaf=True, yang_name="prefix-length", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint8', is_config=False)""",
        })

    self.__prefix_length = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_prefix_length(self):
    self.__prefix_length = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..128']}), is_leaf=True, yang_name="prefix-length", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint8', is_config=False)


  def _get_type(self):
    """
    Getter method for type, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/addresses/address/state/type (oc-inet:ipv6-address-type)

    YANG Description: Specifies the explicit type of the IPv6 address being assigned
to the interface. By default, addresses are assumed to be
global unicast.  Where a link-local address is to be explicitly
configured, this leaf should be set to LINK_LOCAL.
    """
    return self.__type
      
  def _set_type(self, v, load=False):
    """
    Setter method for type, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/addresses/address/state/type (oc-inet:ipv6-address-type)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_type is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_type() directly.

    YANG Description: Specifies the explicit type of the IPv6 address being assigned
to the interface. By default, addresses are assumed to be
global unicast.  Where a link-local address is to be explicitly
configured, this leaf should be set to LINK_LOCAL.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'GLOBAL_UNICAST': {}, 'LINK_LOCAL_UNICAST': {}},), default=six.text_type("GLOBAL_UNICAST"), is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv6-address-type', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """type must be of a type compatible with oc-inet:ipv6-address-type""",
          'defined-type': "oc-inet:ipv6-address-type",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'GLOBAL_UNICAST': {}, 'LINK_LOCAL_UNICAST': {}},), default=six.text_type("GLOBAL_UNICAST"), is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv6-address-type', is_config=False)""",
        })

    self.__type = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_type(self):
    self.__type = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'GLOBAL_UNICAST': {}, 'LINK_LOCAL_UNICAST': {}},), default=six.text_type("GLOBAL_UNICAST"), is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv6-address-type', is_config=False)


  def _get_origin(self):
    """
    Getter method for origin, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/addresses/address/state/origin (ip-address-origin)

    YANG Description: The origin of this address, e.g., static, dhcp, etc.
    """
    return self.__origin
      
  def _set_origin(self, v, load=False):
    """
    Setter method for origin, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/addresses/address/state/origin (ip-address-origin)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_origin is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_origin() directly.

    YANG Description: The origin of this address, e.g., static, dhcp, etc.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OTHER': {}, 'STATIC': {}, 'DHCP': {}, 'LINK_LAYER': {}, 'RANDOM': {}},), is_leaf=True, yang_name="origin", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='ip-address-origin', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """origin must be of a type compatible with ip-address-origin""",
          'defined-type': "openconfig-ap-interfaces:ip-address-origin",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OTHER': {}, 'STATIC': {}, 'DHCP': {}, 'LINK_LAYER': {}, 'RANDOM': {}},), is_leaf=True, yang_name="origin", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='ip-address-origin', is_config=False)""",
        })

    self.__origin = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_origin(self):
    self.__origin = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OTHER': {}, 'STATIC': {}, 'DHCP': {}, 'LINK_LAYER': {}, 'RANDOM': {}},), is_leaf=True, yang_name="origin", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='ip-address-origin', is_config=False)


  def _get_status(self):
    """
    Getter method for status, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/addresses/address/state/status (enumeration)

    YANG Description: The status of an address.  Most of the states correspond
to states from the IPv6 Stateless Address
Autoconfiguration protocol.
    """
    return self.__status
      
  def _set_status(self, v, load=False):
    """
    Setter method for status, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/addresses/address/state/status (enumeration)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_status is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_status() directly.

    YANG Description: The status of an address.  Most of the states correspond
to states from the IPv6 Stateless Address
Autoconfiguration protocol.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'PREFERRED': {}, 'DEPRECATED': {}, 'INVALID': {}, 'INACCESSIBLE': {}, 'UNKNOWN': {}, 'TENTATIVE': {}, 'DUPLICATE': {}, 'OPTIMISTIC': {}},), is_leaf=True, yang_name="status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """status must be of a type compatible with enumeration""",
          'defined-type': "openconfig-ap-interfaces:enumeration",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'PREFERRED': {}, 'DEPRECATED': {}, 'INVALID': {}, 'INACCESSIBLE': {}, 'UNKNOWN': {}, 'TENTATIVE': {}, 'DUPLICATE': {}, 'OPTIMISTIC': {}},), is_leaf=True, yang_name="status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', is_config=False)""",
        })

    self.__status = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_status(self):
    self.__status = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'PREFERRED': {}, 'DEPRECATED': {}, 'INVALID': {}, 'INACCESSIBLE': {}, 'UNKNOWN': {}, 'TENTATIVE': {}, 'DUPLICATE': {}, 'OPTIMISTIC': {}},), is_leaf=True, yang_name="status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', is_config=False)

  ip = __builtin__.property(_get_ip)
  prefix_length = __builtin__.property(_get_prefix_length)
  type = __builtin__.property(_get_type)
  origin = __builtin__.property(_get_origin)
  status = __builtin__.property(_get_status)


  _pyangbind_elements = OrderedDict([('ip', ip), ('prefix_length', prefix_length), ('type', type), ('origin', origin), ('status', status), ])


class yc_address_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_addresses_address(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/subinterfaces/subinterface/ipv6/addresses/address. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: The list of configured IPv6 addresses on the interface.
  """
  __slots__ = ('_path_helper', '_extmethods', '__ip','__config','__state',)

  _yang_name = 'address'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__ip = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_addresses_address_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_addresses_address_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'subinterfaces', 'subinterface', 'ipv6', 'addresses', 'address']

  def _get_ip(self):
    """
    Getter method for ip, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/addresses/address/ip (leafref)

    YANG Description: References the configured IP address
    """
    return self.__ip
      
  def _set_ip(self, v, load=False):
    """
    Setter method for ip, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/addresses/address/ip (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ip is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ip() directly.

    YANG Description: References the configured IP address
    """
    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="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ip must be of a type compatible with leafref""",
          'defined-type': "leafref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)""",
        })

    self.__ip = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ip(self):
    self.__ip = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)


  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/addresses/address/config (container)

    YANG Description: Configuration data for each IPv6 address on
the interface
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/addresses/address/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Configuration data for each IPv6 address on
the interface
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_addresses_address_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_addresses_address_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_addresses_address_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/addresses/address/state (container)

    YANG Description: State data for each IPv6 address on the
interface
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/addresses/address/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 data for each IPv6 address on the
interface
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_addresses_address_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_addresses_address_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_addresses_address_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

  ip = __builtin__.property(_get_ip, _set_ip)
  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)


  _pyangbind_elements = OrderedDict([('ip', ip), ('config', config), ('state', state), ])


class yc_addresses_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_addresses(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/subinterfaces/subinterface/ipv6/addresses. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Enclosing container for address list
  """
  __slots__ = ('_path_helper', '_extmethods', '__address',)

  _yang_name = 'addresses'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__address = YANGDynClass(base=YANGListType("ip",yc_address_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_addresses_address, yang_name="address", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='ip', extensions=None), is_container='list', yang_name="address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='list', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'subinterfaces', 'subinterface', 'ipv6', 'addresses']

  def _get_address(self):
    """
    Getter method for address, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/addresses/address (list)

    YANG Description: The list of configured IPv6 addresses on the interface.
    """
    return self.__address
      
  def _set_address(self, v, load=False):
    """
    Setter method for address, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/addresses/address (list)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_address is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_address() directly.

    YANG Description: The list of configured IPv6 addresses on the interface.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGListType("ip",yc_address_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_addresses_address, yang_name="address", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='ip', extensions=None), is_container='list', yang_name="address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='list', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """address must be of a type compatible with list""",
          'defined-type': "list",
          'generated-type': """YANGDynClass(base=YANGListType("ip",yc_address_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_addresses_address, yang_name="address", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='ip', extensions=None), is_container='list', yang_name="address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='list', is_config=True)""",
        })

    self.__address = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_address(self):
    self.__address = YANGDynClass(base=YANGListType("ip",yc_address_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_addresses_address, yang_name="address", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='ip', extensions=None), is_container='list', yang_name="address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='list', is_config=True)

  address = __builtin__.property(_get_address, _set_address)


  _pyangbind_elements = OrderedDict([('address', address), ])


class yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_router_advertisement_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/subinterfaces/subinterface/ipv6/router-advertisement/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Configuration parameters relating to router advertisements
for IPv6.
  """
  __slots__ = ('_path_helper', '_extmethods', '__interval','__lifetime','__suppress','__managed','__other_config',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__interval = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=True)
    self.__lifetime = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="lifetime", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=True)
    self.__suppress = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="suppress", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)
    self.__managed = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="managed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)
    self.__other_config = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="other-config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'subinterfaces', 'subinterface', 'ipv6', 'router-advertisement', 'config']

  def _get_interval(self):
    """
    Getter method for interval, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/router_advertisement/config/interval (uint32)

    YANG Description: The interval between periodic router advertisement neighbor
discovery messages sent on this interface expressed in
seconds.
    """
    return self.__interval
      
  def _set_interval(self, v, load=False):
    """
    Setter method for interval, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/router_advertisement/config/interval (uint32)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_interval is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_interval() directly.

    YANG Description: The interval between periodic router advertisement neighbor
discovery messages sent on this interface expressed in
seconds.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """interval must be of a type compatible with uint32""",
          'defined-type': "uint32",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=True)""",
        })

    self.__interval = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_interval(self):
    self.__interval = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=True)


  def _get_lifetime(self):
    """
    Getter method for lifetime, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/router_advertisement/config/lifetime (uint32)

    YANG Description: The lifetime advertised in the router advertisement neighbor
discovery message on this interface.
    """
    return self.__lifetime
      
  def _set_lifetime(self, v, load=False):
    """
    Setter method for lifetime, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/router_advertisement/config/lifetime (uint32)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_lifetime is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_lifetime() directly.

    YANG Description: The lifetime advertised in the router advertisement neighbor
discovery message on this interface.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="lifetime", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """lifetime must be of a type compatible with uint32""",
          'defined-type': "uint32",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="lifetime", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=True)""",
        })

    self.__lifetime = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_lifetime(self):
    self.__lifetime = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="lifetime", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=True)


  def _get_suppress(self):
    """
    Getter method for suppress, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/router_advertisement/config/suppress (boolean)

    YANG Description: When set to true, router advertisement neighbor discovery
messages are not transmitted on this interface.
    """
    return self.__suppress
      
  def _set_suppress(self, v, load=False):
    """
    Setter method for suppress, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/router_advertisement/config/suppress (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_suppress is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_suppress() directly.

    YANG Description: When set to true, router advertisement neighbor discovery
messages are not transmitted on this interface.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="suppress", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """suppress must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="suppress", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)""",
        })

    self.__suppress = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_suppress(self):
    self.__suppress = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="suppress", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)


  def _get_managed(self):
    """
    Getter method for managed, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/router_advertisement/config/managed (boolean)

    YANG Description: When set to true, the managed address configuration (M) flag is set in
the advertised router advertisement. The M flag indicates that there are
addresses available via DHCPv6.
    """
    return self.__managed
      
  def _set_managed(self, v, load=False):
    """
    Setter method for managed, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/router_advertisement/config/managed (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_managed is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_managed() directly.

    YANG Description: When set to true, the managed address configuration (M) flag is set in
the advertised router advertisement. The M flag indicates that there are
addresses available via DHCPv6.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="managed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """managed must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="managed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)""",
        })

    self.__managed = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_managed(self):
    self.__managed = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="managed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)


  def _get_other_config(self):
    """
    Getter method for other_config, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/router_advertisement/config/other_config (boolean)

    YANG Description: When set to true, the other configuration (O) flag is set in the
advertised router advertisement. The O flag indicates that there is
other configuration available via DHCPv6 (e.g., DNS servers).
    """
    return self.__other_config
      
  def _set_other_config(self, v, load=False):
    """
    Setter method for other_config, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/router_advertisement/config/other_config (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_other_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_other_config() directly.

    YANG Description: When set to true, the other configuration (O) flag is set in the
advertised router advertisement. The O flag indicates that there is
other configuration available via DHCPv6 (e.g., DNS servers).
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="other-config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """other_config must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="other-config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)""",
        })

    self.__other_config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_other_config(self):
    self.__other_config = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="other-config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)

  interval = __builtin__.property(_get_interval, _set_interval)
  lifetime = __builtin__.property(_get_lifetime, _set_lifetime)
  suppress = __builtin__.property(_get_suppress, _set_suppress)
  managed = __builtin__.property(_get_managed, _set_managed)
  other_config = __builtin__.property(_get_other_config, _set_other_config)


  _pyangbind_elements = OrderedDict([('interval', interval), ('lifetime', lifetime), ('suppress', suppress), ('managed', managed), ('other_config', other_config), ])


class yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_router_advertisement_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/subinterfaces/subinterface/ipv6/router-advertisement/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Operational state parameters relating to router
advertisements for IPv6.
  """
  __slots__ = ('_path_helper', '_extmethods', '__interval','__lifetime','__suppress','__managed','__other_config',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__interval = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=False)
    self.__lifetime = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="lifetime", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=False)
    self.__suppress = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="suppress", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)
    self.__managed = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="managed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)
    self.__other_config = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="other-config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', 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 ['access-points', 'access-point', 'interfaces', 'interface', 'subinterfaces', 'subinterface', 'ipv6', 'router-advertisement', 'state']

  def _get_interval(self):
    """
    Getter method for interval, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/router_advertisement/state/interval (uint32)

    YANG Description: The interval between periodic router advertisement neighbor
discovery messages sent on this interface expressed in
seconds.
    """
    return self.__interval
      
  def _set_interval(self, v, load=False):
    """
    Setter method for interval, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/router_advertisement/state/interval (uint32)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_interval is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_interval() directly.

    YANG Description: The interval between periodic router advertisement neighbor
discovery messages sent on this interface expressed in
seconds.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """interval must be of a type compatible with uint32""",
          'defined-type': "uint32",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=False)""",
        })

    self.__interval = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_interval(self):
    self.__interval = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=False)


  def _get_lifetime(self):
    """
    Getter method for lifetime, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/router_advertisement/state/lifetime (uint32)

    YANG Description: The lifetime advertised in the router advertisement neighbor
discovery message on this interface.
    """
    return self.__lifetime
      
  def _set_lifetime(self, v, load=False):
    """
    Setter method for lifetime, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/router_advertisement/state/lifetime (uint32)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_lifetime is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_lifetime() directly.

    YANG Description: The lifetime advertised in the router advertisement neighbor
discovery message on this interface.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="lifetime", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """lifetime must be of a type compatible with uint32""",
          'defined-type': "uint32",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="lifetime", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=False)""",
        })

    self.__lifetime = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_lifetime(self):
    self.__lifetime = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="lifetime", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=False)


  def _get_suppress(self):
    """
    Getter method for suppress, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/router_advertisement/state/suppress (boolean)

    YANG Description: When set to true, router advertisement neighbor discovery
messages are not transmitted on this interface.
    """
    return self.__suppress
      
  def _set_suppress(self, v, load=False):
    """
    Setter method for suppress, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/router_advertisement/state/suppress (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_suppress is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_suppress() directly.

    YANG Description: When set to true, router advertisement neighbor discovery
messages are not transmitted on this interface.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="suppress", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """suppress must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="suppress", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)""",
        })

    self.__suppress = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_suppress(self):
    self.__suppress = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="suppress", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)


  def _get_managed(self):
    """
    Getter method for managed, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/router_advertisement/state/managed (boolean)

    YANG Description: When set to true, the managed address configuration (M) flag is set in
the advertised router advertisement. The M flag indicates that there are
addresses available via DHCPv6.
    """
    return self.__managed
      
  def _set_managed(self, v, load=False):
    """
    Setter method for managed, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/router_advertisement/state/managed (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_managed is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_managed() directly.

    YANG Description: When set to true, the managed address configuration (M) flag is set in
the advertised router advertisement. The M flag indicates that there are
addresses available via DHCPv6.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="managed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """managed must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="managed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)""",
        })

    self.__managed = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_managed(self):
    self.__managed = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="managed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)


  def _get_other_config(self):
    """
    Getter method for other_config, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/router_advertisement/state/other_config (boolean)

    YANG Description: When set to true, the other configuration (O) flag is set in the
advertised router advertisement. The O flag indicates that there is
other configuration available via DHCPv6 (e.g., DNS servers).
    """
    return self.__other_config
      
  def _set_other_config(self, v, load=False):
    """
    Setter method for other_config, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/router_advertisement/state/other_config (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_other_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_other_config() directly.

    YANG Description: When set to true, the other configuration (O) flag is set in the
advertised router advertisement. The O flag indicates that there is
other configuration available via DHCPv6 (e.g., DNS servers).
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="other-config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """other_config must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="other-config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)""",
        })

    self.__other_config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_other_config(self):
    self.__other_config = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="other-config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)

  interval = __builtin__.property(_get_interval)
  lifetime = __builtin__.property(_get_lifetime)
  suppress = __builtin__.property(_get_suppress)
  managed = __builtin__.property(_get_managed)
  other_config = __builtin__.property(_get_other_config)


  _pyangbind_elements = OrderedDict([('interval', interval), ('lifetime', lifetime), ('suppress', suppress), ('managed', managed), ('other_config', other_config), ])


class yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_router_advertisement_prefixes_prefix_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/subinterfaces/subinterface/ipv6/router-advertisement/prefixes/prefix/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Configuration parameters corresponding to an IPv6 prefix
within the router advertisement.
  """
  __slots__ = ('_path_helper', '_extmethods', '__prefix','__valid_lifetime','__preferred_lifetime','__disable_advertisement','__disable_autoconfiguration','__enable_onlink',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__prefix = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'}), is_leaf=True, yang_name="prefix", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv6-prefix', is_config=True)
    self.__valid_lifetime = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="valid-lifetime", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=True)
    self.__preferred_lifetime = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="preferred-lifetime", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=True)
    self.__disable_advertisement = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="disable-advertisement", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)
    self.__disable_autoconfiguration = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="disable-autoconfiguration", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)
    self.__enable_onlink = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="enable-onlink", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'subinterfaces', 'subinterface', 'ipv6', 'router-advertisement', 'prefixes', 'prefix', 'config']

  def _get_prefix(self):
    """
    Getter method for prefix, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/router_advertisement/prefixes/prefix/config/prefix (oc-inet:ipv6-prefix)

    YANG Description: IPv6 prefix to be advertised within the router advertisement
message.
    """
    return self.__prefix
      
  def _set_prefix(self, v, load=False):
    """
    Setter method for prefix, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/router_advertisement/prefixes/prefix/config/prefix (oc-inet:ipv6-prefix)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_prefix is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_prefix() directly.

    YANG Description: IPv6 prefix to be advertised within the router advertisement
message.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'}), is_leaf=True, yang_name="prefix", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv6-prefix', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """prefix must be of a type compatible with oc-inet:ipv6-prefix""",
          'defined-type': "oc-inet:ipv6-prefix",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'}), is_leaf=True, yang_name="prefix", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv6-prefix', is_config=True)""",
        })

    self.__prefix = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_prefix(self):
    self.__prefix = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'}), is_leaf=True, yang_name="prefix", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv6-prefix', is_config=True)


  def _get_valid_lifetime(self):
    """
    Getter method for valid_lifetime, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/router_advertisement/prefixes/prefix/config/valid_lifetime (uint32)

    YANG Description: The length of time that the prefix is valid relative to the time
the packet was sent.
    """
    return self.__valid_lifetime
      
  def _set_valid_lifetime(self, v, load=False):
    """
    Setter method for valid_lifetime, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/router_advertisement/prefixes/prefix/config/valid_lifetime (uint32)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_valid_lifetime is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_valid_lifetime() directly.

    YANG Description: The length of time that the prefix is valid relative to the time
the packet was sent.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="valid-lifetime", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """valid_lifetime must be of a type compatible with uint32""",
          'defined-type': "uint32",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="valid-lifetime", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=True)""",
        })

    self.__valid_lifetime = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_valid_lifetime(self):
    self.__valid_lifetime = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="valid-lifetime", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=True)


  def _get_preferred_lifetime(self):
    """
    Getter method for preferred_lifetime, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/router_advertisement/prefixes/prefix/config/preferred_lifetime (uint32)

    YANG Description: The length of time that the address within the prefix remains
in the preferred state, i.e., unrestricted use is allowed by
upper-layer protocols. See RFC4862 for a complete definition
of preferred behaviours.
    """
    return self.__preferred_lifetime
      
  def _set_preferred_lifetime(self, v, load=False):
    """
    Setter method for preferred_lifetime, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/router_advertisement/prefixes/prefix/config/preferred_lifetime (uint32)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_preferred_lifetime is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_preferred_lifetime() directly.

    YANG Description: The length of time that the address within the prefix remains
in the preferred state, i.e., unrestricted use is allowed by
upper-layer protocols. See RFC4862 for a complete definition
of preferred behaviours.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="preferred-lifetime", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """preferred_lifetime must be of a type compatible with uint32""",
          'defined-type': "uint32",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="preferred-lifetime", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=True)""",
        })

    self.__preferred_lifetime = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_preferred_lifetime(self):
    self.__preferred_lifetime = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="preferred-lifetime", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=True)


  def _get_disable_advertisement(self):
    """
    Getter method for disable_advertisement, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/router_advertisement/prefixes/prefix/config/disable_advertisement (boolean)

    YANG Description: When set to true, the prefix is not advertised within
router advertisement messages that are sent as a result of
router soliciation messages.
    """
    return self.__disable_advertisement
      
  def _set_disable_advertisement(self, v, load=False):
    """
    Setter method for disable_advertisement, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/router_advertisement/prefixes/prefix/config/disable_advertisement (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_disable_advertisement is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_disable_advertisement() directly.

    YANG Description: When set to true, the prefix is not advertised within
router advertisement messages that are sent as a result of
router soliciation messages.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="disable-advertisement", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """disable_advertisement must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="disable-advertisement", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)""",
        })

    self.__disable_advertisement = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_disable_advertisement(self):
    self.__disable_advertisement = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="disable-advertisement", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)


  def _get_disable_autoconfiguration(self):
    """
    Getter method for disable_autoconfiguration, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/router_advertisement/prefixes/prefix/config/disable_autoconfiguration (boolean)

    YANG Description: When set to true, the prefix is marked as not to be used for stateless
address configuration. This is achieved by setting the autonomous address
configuration bit for the prefix.
    """
    return self.__disable_autoconfiguration
      
  def _set_disable_autoconfiguration(self, v, load=False):
    """
    Setter method for disable_autoconfiguration, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/router_advertisement/prefixes/prefix/config/disable_autoconfiguration (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_disable_autoconfiguration is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_disable_autoconfiguration() directly.

    YANG Description: When set to true, the prefix is marked as not to be used for stateless
address configuration. This is achieved by setting the autonomous address
configuration bit for the prefix.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="disable-autoconfiguration", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """disable_autoconfiguration must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="disable-autoconfiguration", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)""",
        })

    self.__disable_autoconfiguration = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_disable_autoconfiguration(self):
    self.__disable_autoconfiguration = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="disable-autoconfiguration", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)


  def _get_enable_onlink(self):
    """
    Getter method for enable_onlink, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/router_advertisement/prefixes/prefix/config/enable_onlink (boolean)

    YANG Description: When set to true, the prefix is marked as being on link by setting the
L-bit for the prefix within a router advertisement.
    """
    return self.__enable_onlink
      
  def _set_enable_onlink(self, v, load=False):
    """
    Setter method for enable_onlink, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/router_advertisement/prefixes/prefix/config/enable_onlink (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_enable_onlink is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_enable_onlink() directly.

    YANG Description: When set to true, the prefix is marked as being on link by setting the
L-bit for the prefix within a router advertisement.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="enable-onlink", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """enable_onlink must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="enable-onlink", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)""",
        })

    self.__enable_onlink = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_enable_onlink(self):
    self.__enable_onlink = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="enable-onlink", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)

  prefix = __builtin__.property(_get_prefix, _set_prefix)
  valid_lifetime = __builtin__.property(_get_valid_lifetime, _set_valid_lifetime)
  preferred_lifetime = __builtin__.property(_get_preferred_lifetime, _set_preferred_lifetime)
  disable_advertisement = __builtin__.property(_get_disable_advertisement, _set_disable_advertisement)
  disable_autoconfiguration = __builtin__.property(_get_disable_autoconfiguration, _set_disable_autoconfiguration)
  enable_onlink = __builtin__.property(_get_enable_onlink, _set_enable_onlink)


  _pyangbind_elements = OrderedDict([('prefix', prefix), ('valid_lifetime', valid_lifetime), ('preferred_lifetime', preferred_lifetime), ('disable_advertisement', disable_advertisement), ('disable_autoconfiguration', disable_autoconfiguration), ('enable_onlink', enable_onlink), ])


class yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_router_advertisement_prefixes_prefix_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/subinterfaces/subinterface/ipv6/router-advertisement/prefixes/prefix/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Operational state parameters corresponding to an IPv6 prefix
within the router advertisement.
  """
  __slots__ = ('_path_helper', '_extmethods', '__prefix','__valid_lifetime','__preferred_lifetime','__disable_advertisement','__disable_autoconfiguration','__enable_onlink',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__prefix = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'}), is_leaf=True, yang_name="prefix", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv6-prefix', is_config=False)
    self.__valid_lifetime = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="valid-lifetime", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=False)
    self.__preferred_lifetime = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="preferred-lifetime", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=False)
    self.__disable_advertisement = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="disable-advertisement", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)
    self.__disable_autoconfiguration = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="disable-autoconfiguration", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)
    self.__enable_onlink = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="enable-onlink", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', 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 ['access-points', 'access-point', 'interfaces', 'interface', 'subinterfaces', 'subinterface', 'ipv6', 'router-advertisement', 'prefixes', 'prefix', 'state']

  def _get_prefix(self):
    """
    Getter method for prefix, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/router_advertisement/prefixes/prefix/state/prefix (oc-inet:ipv6-prefix)

    YANG Description: IPv6 prefix to be advertised within the router advertisement
message.
    """
    return self.__prefix
      
  def _set_prefix(self, v, load=False):
    """
    Setter method for prefix, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/router_advertisement/prefixes/prefix/state/prefix (oc-inet:ipv6-prefix)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_prefix is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_prefix() directly.

    YANG Description: IPv6 prefix to be advertised within the router advertisement
message.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'}), is_leaf=True, yang_name="prefix", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv6-prefix', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """prefix must be of a type compatible with oc-inet:ipv6-prefix""",
          'defined-type': "oc-inet:ipv6-prefix",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'}), is_leaf=True, yang_name="prefix", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv6-prefix', is_config=False)""",
        })

    self.__prefix = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_prefix(self):
    self.__prefix = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'}), is_leaf=True, yang_name="prefix", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv6-prefix', is_config=False)


  def _get_valid_lifetime(self):
    """
    Getter method for valid_lifetime, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/router_advertisement/prefixes/prefix/state/valid_lifetime (uint32)

    YANG Description: The length of time that the prefix is valid relative to the time
the packet was sent.
    """
    return self.__valid_lifetime
      
  def _set_valid_lifetime(self, v, load=False):
    """
    Setter method for valid_lifetime, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/router_advertisement/prefixes/prefix/state/valid_lifetime (uint32)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_valid_lifetime is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_valid_lifetime() directly.

    YANG Description: The length of time that the prefix is valid relative to the time
the packet was sent.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="valid-lifetime", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """valid_lifetime must be of a type compatible with uint32""",
          'defined-type': "uint32",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="valid-lifetime", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=False)""",
        })

    self.__valid_lifetime = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_valid_lifetime(self):
    self.__valid_lifetime = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="valid-lifetime", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=False)


  def _get_preferred_lifetime(self):
    """
    Getter method for preferred_lifetime, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/router_advertisement/prefixes/prefix/state/preferred_lifetime (uint32)

    YANG Description: The length of time that the address within the prefix remains
in the preferred state, i.e., unrestricted use is allowed by
upper-layer protocols. See RFC4862 for a complete definition
of preferred behaviours.
    """
    return self.__preferred_lifetime
      
  def _set_preferred_lifetime(self, v, load=False):
    """
    Setter method for preferred_lifetime, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/router_advertisement/prefixes/prefix/state/preferred_lifetime (uint32)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_preferred_lifetime is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_preferred_lifetime() directly.

    YANG Description: The length of time that the address within the prefix remains
in the preferred state, i.e., unrestricted use is allowed by
upper-layer protocols. See RFC4862 for a complete definition
of preferred behaviours.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="preferred-lifetime", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """preferred_lifetime must be of a type compatible with uint32""",
          'defined-type': "uint32",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="preferred-lifetime", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=False)""",
        })

    self.__preferred_lifetime = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_preferred_lifetime(self):
    self.__preferred_lifetime = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="preferred-lifetime", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=False)


  def _get_disable_advertisement(self):
    """
    Getter method for disable_advertisement, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/router_advertisement/prefixes/prefix/state/disable_advertisement (boolean)

    YANG Description: When set to true, the prefix is not advertised within
router advertisement messages that are sent as a result of
router soliciation messages.
    """
    return self.__disable_advertisement
      
  def _set_disable_advertisement(self, v, load=False):
    """
    Setter method for disable_advertisement, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/router_advertisement/prefixes/prefix/state/disable_advertisement (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_disable_advertisement is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_disable_advertisement() directly.

    YANG Description: When set to true, the prefix is not advertised within
router advertisement messages that are sent as a result of
router soliciation messages.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="disable-advertisement", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """disable_advertisement must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="disable-advertisement", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)""",
        })

    self.__disable_advertisement = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_disable_advertisement(self):
    self.__disable_advertisement = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="disable-advertisement", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)


  def _get_disable_autoconfiguration(self):
    """
    Getter method for disable_autoconfiguration, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/router_advertisement/prefixes/prefix/state/disable_autoconfiguration (boolean)

    YANG Description: When set to true, the prefix is marked as not to be used for stateless
address configuration. This is achieved by setting the autonomous address
configuration bit for the prefix.
    """
    return self.__disable_autoconfiguration
      
  def _set_disable_autoconfiguration(self, v, load=False):
    """
    Setter method for disable_autoconfiguration, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/router_advertisement/prefixes/prefix/state/disable_autoconfiguration (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_disable_autoconfiguration is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_disable_autoconfiguration() directly.

    YANG Description: When set to true, the prefix is marked as not to be used for stateless
address configuration. This is achieved by setting the autonomous address
configuration bit for the prefix.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="disable-autoconfiguration", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """disable_autoconfiguration must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="disable-autoconfiguration", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)""",
        })

    self.__disable_autoconfiguration = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_disable_autoconfiguration(self):
    self.__disable_autoconfiguration = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="disable-autoconfiguration", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)


  def _get_enable_onlink(self):
    """
    Getter method for enable_onlink, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/router_advertisement/prefixes/prefix/state/enable_onlink (boolean)

    YANG Description: When set to true, the prefix is marked as being on link by setting the
L-bit for the prefix within a router advertisement.
    """
    return self.__enable_onlink
      
  def _set_enable_onlink(self, v, load=False):
    """
    Setter method for enable_onlink, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/router_advertisement/prefixes/prefix/state/enable_onlink (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_enable_onlink is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_enable_onlink() directly.

    YANG Description: When set to true, the prefix is marked as being on link by setting the
L-bit for the prefix within a router advertisement.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="enable-onlink", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """enable_onlink must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="enable-onlink", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)""",
        })

    self.__enable_onlink = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_enable_onlink(self):
    self.__enable_onlink = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="enable-onlink", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)

  prefix = __builtin__.property(_get_prefix)
  valid_lifetime = __builtin__.property(_get_valid_lifetime)
  preferred_lifetime = __builtin__.property(_get_preferred_lifetime)
  disable_advertisement = __builtin__.property(_get_disable_advertisement)
  disable_autoconfiguration = __builtin__.property(_get_disable_autoconfiguration)
  enable_onlink = __builtin__.property(_get_enable_onlink)


  _pyangbind_elements = OrderedDict([('prefix', prefix), ('valid_lifetime', valid_lifetime), ('preferred_lifetime', preferred_lifetime), ('disable_advertisement', disable_advertisement), ('disable_autoconfiguration', disable_autoconfiguration), ('enable_onlink', enable_onlink), ])


class yc_prefix_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_router_advertisement_prefixes_prefix(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/subinterfaces/subinterface/ipv6/router-advertisement/prefixes/prefix. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: List of prefixes that are to be included in the IPv6
router-advertisement messages for the interface. The list
is keyed by the IPv6 prefix in CIDR representation.

Prefixes that are listed are those that are to be
advertised in router advertisement messages. Where there
are IPv6 global addresses configured on an interface and
the prefix is not listed in the prefix list, it MUST NOT
be advertised in the router advertisement message.
  """
  __slots__ = ('_path_helper', '_extmethods', '__prefix','__config','__state',)

  _yang_name = 'prefix'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__prefix = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="prefix", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_router_advertisement_prefixes_prefix_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_router_advertisement_prefixes_prefix_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'subinterfaces', 'subinterface', 'ipv6', 'router-advertisement', 'prefixes', 'prefix']

  def _get_prefix(self):
    """
    Getter method for prefix, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/router_advertisement/prefixes/prefix/prefix (leafref)

    YANG Description: Reference to the IPv6 prefix key for the prefix list.
    """
    return self.__prefix
      
  def _set_prefix(self, v, load=False):
    """
    Setter method for prefix, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/router_advertisement/prefixes/prefix/prefix (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_prefix is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_prefix() directly.

    YANG Description: Reference to the IPv6 prefix key for the prefix list.
    """
    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="prefix", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """prefix must be of a type compatible with leafref""",
          'defined-type': "leafref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="prefix", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)""",
        })

    self.__prefix = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_prefix(self):
    self.__prefix = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="prefix", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)


  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/router_advertisement/prefixes/prefix/config (container)

    YANG Description: Configuration parameters corresponding to an IPv6 prefix
within the router advertisement.
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/router_advertisement/prefixes/prefix/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Configuration parameters corresponding to an IPv6 prefix
within the router advertisement.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_router_advertisement_prefixes_prefix_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_router_advertisement_prefixes_prefix_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_router_advertisement_prefixes_prefix_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/router_advertisement/prefixes/prefix/state (container)

    YANG Description: Operational state parameters corresponding to an IPv6 prefix
within the router advertisement.
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/router_advertisement/prefixes/prefix/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: Operational state parameters corresponding to an IPv6 prefix
within the router advertisement.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_router_advertisement_prefixes_prefix_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_router_advertisement_prefixes_prefix_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_router_advertisement_prefixes_prefix_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

  prefix = __builtin__.property(_get_prefix, _set_prefix)
  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)


  _pyangbind_elements = OrderedDict([('prefix', prefix), ('config', config), ('state', state), ])


class yc_prefixes_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_router_advertisement_prefixes(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/subinterfaces/subinterface/ipv6/router-advertisement/prefixes. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Container for a list of prefixes that are included in the
router advertisement message.
  """
  __slots__ = ('_path_helper', '_extmethods', '__prefix',)

  _yang_name = 'prefixes'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__prefix = YANGDynClass(base=YANGListType("prefix",yc_prefix_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_router_advertisement_prefixes_prefix, yang_name="prefix", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='prefix', extensions=None), is_container='list', yang_name="prefix", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='list', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'subinterfaces', 'subinterface', 'ipv6', 'router-advertisement', 'prefixes']

  def _get_prefix(self):
    """
    Getter method for prefix, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/router_advertisement/prefixes/prefix (list)

    YANG Description: List of prefixes that are to be included in the IPv6
router-advertisement messages for the interface. The list
is keyed by the IPv6 prefix in CIDR representation.

Prefixes that are listed are those that are to be
advertised in router advertisement messages. Where there
are IPv6 global addresses configured on an interface and
the prefix is not listed in the prefix list, it MUST NOT
be advertised in the router advertisement message.
    """
    return self.__prefix
      
  def _set_prefix(self, v, load=False):
    """
    Setter method for prefix, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/router_advertisement/prefixes/prefix (list)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_prefix is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_prefix() directly.

    YANG Description: List of prefixes that are to be included in the IPv6
router-advertisement messages for the interface. The list
is keyed by the IPv6 prefix in CIDR representation.

Prefixes that are listed are those that are to be
advertised in router advertisement messages. Where there
are IPv6 global addresses configured on an interface and
the prefix is not listed in the prefix list, it MUST NOT
be advertised in the router advertisement message.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGListType("prefix",yc_prefix_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_router_advertisement_prefixes_prefix, yang_name="prefix", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='prefix', extensions=None), is_container='list', yang_name="prefix", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='list', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """prefix must be of a type compatible with list""",
          'defined-type': "list",
          'generated-type': """YANGDynClass(base=YANGListType("prefix",yc_prefix_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_router_advertisement_prefixes_prefix, yang_name="prefix", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='prefix', extensions=None), is_container='list', yang_name="prefix", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='list', is_config=True)""",
        })

    self.__prefix = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_prefix(self):
    self.__prefix = YANGDynClass(base=YANGListType("prefix",yc_prefix_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_router_advertisement_prefixes_prefix, yang_name="prefix", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='prefix', extensions=None), is_container='list', yang_name="prefix", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='list', is_config=True)

  prefix = __builtin__.property(_get_prefix, _set_prefix)


  _pyangbind_elements = OrderedDict([('prefix', prefix), ])


class yc_router_advertisement_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_router_advertisement(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/subinterfaces/subinterface/ipv6/router-advertisement. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Configuration and operational state parameters relating to
router advertisements.
  """
  __slots__ = ('_path_helper', '_extmethods', '__config','__state','__prefixes',)

  _yang_name = 'router-advertisement'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_router_advertisement_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_router_advertisement_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__prefixes = YANGDynClass(base=yc_prefixes_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_router_advertisement_prefixes, is_container='container', yang_name="prefixes", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'subinterfaces', 'subinterface', 'ipv6', 'router-advertisement']

  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/router_advertisement/config (container)

    YANG Description: Configuration parameters relating to router advertisements
for IPv6.
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/router_advertisement/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Configuration parameters relating to router advertisements
for IPv6.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_router_advertisement_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_router_advertisement_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_router_advertisement_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/router_advertisement/state (container)

    YANG Description: Operational state parameters relating to router
advertisements for IPv6.
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/router_advertisement/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: Operational state parameters relating to router
advertisements for IPv6.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_router_advertisement_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_router_advertisement_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_router_advertisement_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_prefixes(self):
    """
    Getter method for prefixes, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/router_advertisement/prefixes (container)

    YANG Description: Container for a list of prefixes that are included in the
router advertisement message.
    """
    return self.__prefixes
      
  def _set_prefixes(self, v, load=False):
    """
    Setter method for prefixes, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/router_advertisement/prefixes (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_prefixes is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_prefixes() directly.

    YANG Description: Container for a list of prefixes that are included in the
router advertisement message.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_prefixes_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_router_advertisement_prefixes, is_container='container', yang_name="prefixes", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """prefixes must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_prefixes_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_router_advertisement_prefixes, is_container='container', yang_name="prefixes", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

    self.__prefixes = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_prefixes(self):
    self.__prefixes = YANGDynClass(base=yc_prefixes_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_router_advertisement_prefixes, is_container='container', yang_name="prefixes", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)
  prefixes = __builtin__.property(_get_prefixes, _set_prefixes)


  _pyangbind_elements = OrderedDict([('config', config), ('state', state), ('prefixes', prefixes), ])


class yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_neighbors_neighbor_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/subinterfaces/subinterface/ipv6/neighbors/neighbor/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Configuration data for each IPv6 address on
the interface
  """
  __slots__ = ('_path_helper', '_extmethods', '__ip','__link_layer_address',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__ip = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}), is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv6-address', is_config=True)
    self.__link_layer_address = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'}), is_leaf=True, yang_name="link-layer-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:phys-address', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'subinterfaces', 'subinterface', 'ipv6', 'neighbors', 'neighbor', 'config']

  def _get_ip(self):
    """
    Getter method for ip, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/neighbors/neighbor/config/ip (oc-inet:ipv6-address)

    YANG Description: The IPv6 address of the neighbor node.
    """
    return self.__ip
      
  def _set_ip(self, v, load=False):
    """
    Setter method for ip, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/neighbors/neighbor/config/ip (oc-inet:ipv6-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ip is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ip() directly.

    YANG Description: The IPv6 address of the neighbor node.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}), is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv6-address', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ip must be of a type compatible with oc-inet:ipv6-address""",
          'defined-type': "oc-inet:ipv6-address",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}), is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv6-address', is_config=True)""",
        })

    self.__ip = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ip(self):
    self.__ip = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}), is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv6-address', is_config=True)


  def _get_link_layer_address(self):
    """
    Getter method for link_layer_address, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/neighbors/neighbor/config/link_layer_address (oc-yang:phys-address)

    YANG Description: The link-layer address of the neighbor node.
    """
    return self.__link_layer_address
      
  def _set_link_layer_address(self, v, load=False):
    """
    Setter method for link_layer_address, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/neighbors/neighbor/config/link_layer_address (oc-yang:phys-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_link_layer_address is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_link_layer_address() directly.

    YANG Description: The link-layer address of the neighbor node.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'}), is_leaf=True, yang_name="link-layer-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:phys-address', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """link_layer_address must be of a type compatible with oc-yang:phys-address""",
          'defined-type': "oc-yang:phys-address",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'}), is_leaf=True, yang_name="link-layer-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:phys-address', is_config=True)""",
        })

    self.__link_layer_address = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_link_layer_address(self):
    self.__link_layer_address = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'}), is_leaf=True, yang_name="link-layer-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:phys-address', is_config=True)

  ip = __builtin__.property(_get_ip, _set_ip)
  link_layer_address = __builtin__.property(_get_link_layer_address, _set_link_layer_address)


  _pyangbind_elements = OrderedDict([('ip', ip), ('link_layer_address', link_layer_address), ])


class yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_neighbors_neighbor_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/subinterfaces/subinterface/ipv6/neighbors/neighbor/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: State data for each IPv6 address on the
interface
  """
  __slots__ = ('_path_helper', '_extmethods', '__ip','__link_layer_address','__origin','__is_router','__neighbor_state',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__ip = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}), is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv6-address', is_config=False)
    self.__link_layer_address = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'}), is_leaf=True, yang_name="link-layer-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:phys-address', is_config=False)
    self.__origin = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OTHER': {}, 'STATIC': {}, 'DYNAMIC': {}},), is_leaf=True, yang_name="origin", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='neighbor-origin', is_config=False)
    self.__is_router = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="is-router", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)
    self.__neighbor_state = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'INCOMPLETE': {}, 'REACHABLE': {}, 'STALE': {}, 'DELAY': {}, 'PROBE': {}},), is_leaf=True, yang_name="neighbor-state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', 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 ['access-points', 'access-point', 'interfaces', 'interface', 'subinterfaces', 'subinterface', 'ipv6', 'neighbors', 'neighbor', 'state']

  def _get_ip(self):
    """
    Getter method for ip, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/neighbors/neighbor/state/ip (oc-inet:ipv6-address)

    YANG Description: The IPv6 address of the neighbor node.
    """
    return self.__ip
      
  def _set_ip(self, v, load=False):
    """
    Setter method for ip, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/neighbors/neighbor/state/ip (oc-inet:ipv6-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ip is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ip() directly.

    YANG Description: The IPv6 address of the neighbor node.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}), is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv6-address', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ip must be of a type compatible with oc-inet:ipv6-address""",
          'defined-type': "oc-inet:ipv6-address",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}), is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv6-address', is_config=False)""",
        })

    self.__ip = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ip(self):
    self.__ip = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}), is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv6-address', is_config=False)


  def _get_link_layer_address(self):
    """
    Getter method for link_layer_address, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/neighbors/neighbor/state/link_layer_address (oc-yang:phys-address)

    YANG Description: The link-layer address of the neighbor node.
    """
    return self.__link_layer_address
      
  def _set_link_layer_address(self, v, load=False):
    """
    Setter method for link_layer_address, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/neighbors/neighbor/state/link_layer_address (oc-yang:phys-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_link_layer_address is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_link_layer_address() directly.

    YANG Description: The link-layer address of the neighbor node.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'}), is_leaf=True, yang_name="link-layer-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:phys-address', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """link_layer_address must be of a type compatible with oc-yang:phys-address""",
          'defined-type': "oc-yang:phys-address",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'}), is_leaf=True, yang_name="link-layer-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:phys-address', is_config=False)""",
        })

    self.__link_layer_address = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_link_layer_address(self):
    self.__link_layer_address = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'}), is_leaf=True, yang_name="link-layer-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:phys-address', is_config=False)


  def _get_origin(self):
    """
    Getter method for origin, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/neighbors/neighbor/state/origin (neighbor-origin)

    YANG Description: The origin of this neighbor entry.
    """
    return self.__origin
      
  def _set_origin(self, v, load=False):
    """
    Setter method for origin, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/neighbors/neighbor/state/origin (neighbor-origin)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_origin is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_origin() directly.

    YANG Description: The origin of this neighbor entry.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OTHER': {}, 'STATIC': {}, 'DYNAMIC': {}},), is_leaf=True, yang_name="origin", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='neighbor-origin', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """origin must be of a type compatible with neighbor-origin""",
          'defined-type': "openconfig-ap-interfaces:neighbor-origin",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OTHER': {}, 'STATIC': {}, 'DYNAMIC': {}},), is_leaf=True, yang_name="origin", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='neighbor-origin', is_config=False)""",
        })

    self.__origin = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_origin(self):
    self.__origin = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OTHER': {}, 'STATIC': {}, 'DYNAMIC': {}},), is_leaf=True, yang_name="origin", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='neighbor-origin', is_config=False)


  def _get_is_router(self):
    """
    Getter method for is_router, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/neighbors/neighbor/state/is_router (boolean)

    YANG Description: Indicates that the neighbor node acts as a router.
    """
    return self.__is_router
      
  def _set_is_router(self, v, load=False):
    """
    Setter method for is_router, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/neighbors/neighbor/state/is_router (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_is_router is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_is_router() directly.

    YANG Description: Indicates that the neighbor node acts as a router.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="is-router", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """is_router must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="is-router", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)""",
        })

    self.__is_router = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_is_router(self):
    self.__is_router = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="is-router", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)


  def _get_neighbor_state(self):
    """
    Getter method for neighbor_state, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/neighbors/neighbor/state/neighbor_state (enumeration)

    YANG Description: The Neighbor Unreachability Detection state of this
entry.
    """
    return self.__neighbor_state
      
  def _set_neighbor_state(self, v, load=False):
    """
    Setter method for neighbor_state, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/neighbors/neighbor/state/neighbor_state (enumeration)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_neighbor_state is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_neighbor_state() directly.

    YANG Description: The Neighbor Unreachability Detection state of this
entry.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'INCOMPLETE': {}, 'REACHABLE': {}, 'STALE': {}, 'DELAY': {}, 'PROBE': {}},), is_leaf=True, yang_name="neighbor-state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """neighbor_state must be of a type compatible with enumeration""",
          'defined-type': "openconfig-ap-interfaces:enumeration",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'INCOMPLETE': {}, 'REACHABLE': {}, 'STALE': {}, 'DELAY': {}, 'PROBE': {}},), is_leaf=True, yang_name="neighbor-state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', is_config=False)""",
        })

    self.__neighbor_state = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_neighbor_state(self):
    self.__neighbor_state = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'INCOMPLETE': {}, 'REACHABLE': {}, 'STALE': {}, 'DELAY': {}, 'PROBE': {}},), is_leaf=True, yang_name="neighbor-state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', is_config=False)

  ip = __builtin__.property(_get_ip)
  link_layer_address = __builtin__.property(_get_link_layer_address)
  origin = __builtin__.property(_get_origin)
  is_router = __builtin__.property(_get_is_router)
  neighbor_state = __builtin__.property(_get_neighbor_state)


  _pyangbind_elements = OrderedDict([('ip', ip), ('link_layer_address', link_layer_address), ('origin', origin), ('is_router', is_router), ('neighbor_state', neighbor_state), ])


class yc_neighbor_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_neighbors_neighbor(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/subinterfaces/subinterface/ipv6/neighbors/neighbor. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: List of IPv6 neighbors
  """
  __slots__ = ('_path_helper', '_extmethods', '__ip','__config','__state',)

  _yang_name = 'neighbor'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__ip = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_neighbors_neighbor_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_neighbors_neighbor_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'subinterfaces', 'subinterface', 'ipv6', 'neighbors', 'neighbor']

  def _get_ip(self):
    """
    Getter method for ip, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/neighbors/neighbor/ip (leafref)

    YANG Description: References the configured IP neighbor address
    """
    return self.__ip
      
  def _set_ip(self, v, load=False):
    """
    Setter method for ip, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/neighbors/neighbor/ip (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ip is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ip() directly.

    YANG Description: References the configured IP neighbor address
    """
    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="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ip must be of a type compatible with leafref""",
          'defined-type': "leafref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)""",
        })

    self.__ip = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ip(self):
    self.__ip = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)


  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/neighbors/neighbor/config (container)

    YANG Description: Configuration data for each IPv6 address on
the interface
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/neighbors/neighbor/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Configuration data for each IPv6 address on
the interface
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_neighbors_neighbor_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_neighbors_neighbor_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_neighbors_neighbor_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/neighbors/neighbor/state (container)

    YANG Description: State data for each IPv6 address on the
interface
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/neighbors/neighbor/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 data for each IPv6 address on the
interface
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_neighbors_neighbor_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_neighbors_neighbor_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_neighbors_neighbor_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

  ip = __builtin__.property(_get_ip, _set_ip)
  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)


  _pyangbind_elements = OrderedDict([('ip', ip), ('config', config), ('state', state), ])


class yc_neighbors_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_neighbors(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/subinterfaces/subinterface/ipv6/neighbors. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Enclosing container for list of IPv6 neighbors
  """
  __slots__ = ('_path_helper', '_extmethods', '__neighbor',)

  _yang_name = 'neighbors'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__neighbor = YANGDynClass(base=YANGListType("ip",yc_neighbor_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_neighbors_neighbor, yang_name="neighbor", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='ip', extensions=None), is_container='list', yang_name="neighbor", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='list', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'subinterfaces', 'subinterface', 'ipv6', 'neighbors']

  def _get_neighbor(self):
    """
    Getter method for neighbor, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/neighbors/neighbor (list)

    YANG Description: List of IPv6 neighbors
    """
    return self.__neighbor
      
  def _set_neighbor(self, v, load=False):
    """
    Setter method for neighbor, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/neighbors/neighbor (list)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_neighbor is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_neighbor() directly.

    YANG Description: List of IPv6 neighbors
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGListType("ip",yc_neighbor_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_neighbors_neighbor, yang_name="neighbor", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='ip', extensions=None), is_container='list', yang_name="neighbor", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='list', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """neighbor must be of a type compatible with list""",
          'defined-type': "list",
          'generated-type': """YANGDynClass(base=YANGListType("ip",yc_neighbor_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_neighbors_neighbor, yang_name="neighbor", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='ip', extensions=None), is_container='list', yang_name="neighbor", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='list', is_config=True)""",
        })

    self.__neighbor = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_neighbor(self):
    self.__neighbor = YANGDynClass(base=YANGListType("ip",yc_neighbor_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_neighbors_neighbor, yang_name="neighbor", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='ip', extensions=None), is_container='list', yang_name="neighbor", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='list', is_config=True)

  neighbor = __builtin__.property(_get_neighbor, _set_neighbor)


  _pyangbind_elements = OrderedDict([('neighbor', neighbor), ])


class yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_unnumbered_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/subinterfaces/subinterface/ipv6/unnumbered/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Configuration data for unnumbered interface
  """
  __slots__ = ('_path_helper', '_extmethods', '__enabled',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'subinterfaces', 'subinterface', 'ipv6', 'unnumbered', 'config']

  def _get_enabled(self):
    """
    Getter method for enabled, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/unnumbered/config/enabled (boolean)

    YANG Description: Indicates that the subinterface is unnumbered.  By default
the subinterface is numbered, i.e., expected to have an
IP address configuration.
    """
    return self.__enabled
      
  def _set_enabled(self, v, load=False):
    """
    Setter method for enabled, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/unnumbered/config/enabled (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_enabled is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_enabled() directly.

    YANG Description: Indicates that the subinterface is unnumbered.  By default
the subinterface is numbered, i.e., expected to have an
IP address configuration.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """enabled must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)""",
        })

    self.__enabled = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_enabled(self):
    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)

  enabled = __builtin__.property(_get_enabled, _set_enabled)


  _pyangbind_elements = OrderedDict([('enabled', enabled), ])


class yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_unnumbered_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/subinterfaces/subinterface/ipv6/unnumbered/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Operational state data for unnumbered interfaces
  """
  __slots__ = ('_path_helper', '_extmethods', '__enabled',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', 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 ['access-points', 'access-point', 'interfaces', 'interface', 'subinterfaces', 'subinterface', 'ipv6', 'unnumbered', 'state']

  def _get_enabled(self):
    """
    Getter method for enabled, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/unnumbered/state/enabled (boolean)

    YANG Description: Indicates that the subinterface is unnumbered.  By default
the subinterface is numbered, i.e., expected to have an
IP address configuration.
    """
    return self.__enabled
      
  def _set_enabled(self, v, load=False):
    """
    Setter method for enabled, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/unnumbered/state/enabled (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_enabled is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_enabled() directly.

    YANG Description: Indicates that the subinterface is unnumbered.  By default
the subinterface is numbered, i.e., expected to have an
IP address configuration.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """enabled must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)""",
        })

    self.__enabled = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_enabled(self):
    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)

  enabled = __builtin__.property(_get_enabled)


  _pyangbind_elements = OrderedDict([('enabled', enabled), ])


class yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_unnumbered_interface_ref_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/subinterfaces/subinterface/ipv6/unnumbered/interface-ref/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Configured reference to interface / subinterface
  """
  __slots__ = ('_path_helper', '_extmethods', '__interface','__subinterface',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__interface = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="interface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)
    self.__subinterface = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="subinterface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'subinterfaces', 'subinterface', 'ipv6', 'unnumbered', 'interface-ref', 'config']

  def _get_interface(self):
    """
    Getter method for interface, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/unnumbered/interface_ref/config/interface (leafref)

    YANG Description: Reference to a base interface.  If a reference to a
subinterface is required, this leaf must be specified
to indicate the base interface.
    """
    return self.__interface
      
  def _set_interface(self, v, load=False):
    """
    Setter method for interface, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/unnumbered/interface_ref/config/interface (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_interface is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_interface() directly.

    YANG Description: Reference to a base interface.  If a reference to a
subinterface is required, this leaf must be specified
to indicate the base interface.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="interface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """interface must be of a type compatible with leafref""",
          'defined-type': "leafref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="interface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)""",
        })

    self.__interface = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_interface(self):
    self.__interface = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="interface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)


  def _get_subinterface(self):
    """
    Getter method for subinterface, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/unnumbered/interface_ref/config/subinterface (leafref)

    YANG Description: Reference to a subinterface -- this requires the base
interface to be specified using the interface leaf in
this container.  If only a reference to a base interface
is requuired, this leaf should not be set.
    """
    return self.__subinterface
      
  def _set_subinterface(self, v, load=False):
    """
    Setter method for subinterface, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/unnumbered/interface_ref/config/subinterface (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_subinterface is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_subinterface() directly.

    YANG Description: Reference to a subinterface -- this requires the base
interface to be specified using the interface leaf in
this container.  If only a reference to a base interface
is requuired, this leaf should not be set.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="subinterface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """subinterface must be of a type compatible with leafref""",
          'defined-type': "leafref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="subinterface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)""",
        })

    self.__subinterface = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_subinterface(self):
    self.__subinterface = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="subinterface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)

  interface = __builtin__.property(_get_interface, _set_interface)
  subinterface = __builtin__.property(_get_subinterface, _set_subinterface)


  _pyangbind_elements = OrderedDict([('interface', interface), ('subinterface', subinterface), ])


class yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_unnumbered_interface_ref_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/subinterfaces/subinterface/ipv6/unnumbered/interface-ref/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Operational state for interface-ref
  """
  __slots__ = ('_path_helper', '_extmethods', '__interface','__subinterface',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__interface = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="interface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=False)
    self.__subinterface = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="subinterface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', 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 ['access-points', 'access-point', 'interfaces', 'interface', 'subinterfaces', 'subinterface', 'ipv6', 'unnumbered', 'interface-ref', 'state']

  def _get_interface(self):
    """
    Getter method for interface, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/unnumbered/interface_ref/state/interface (leafref)

    YANG Description: Reference to a base interface.  If a reference to a
subinterface is required, this leaf must be specified
to indicate the base interface.
    """
    return self.__interface
      
  def _set_interface(self, v, load=False):
    """
    Setter method for interface, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/unnumbered/interface_ref/state/interface (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_interface is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_interface() directly.

    YANG Description: Reference to a base interface.  If a reference to a
subinterface is required, this leaf must be specified
to indicate the base interface.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="interface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """interface must be of a type compatible with leafref""",
          'defined-type': "leafref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="interface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=False)""",
        })

    self.__interface = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_interface(self):
    self.__interface = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="interface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=False)


  def _get_subinterface(self):
    """
    Getter method for subinterface, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/unnumbered/interface_ref/state/subinterface (leafref)

    YANG Description: Reference to a subinterface -- this requires the base
interface to be specified using the interface leaf in
this container.  If only a reference to a base interface
is requuired, this leaf should not be set.
    """
    return self.__subinterface
      
  def _set_subinterface(self, v, load=False):
    """
    Setter method for subinterface, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/unnumbered/interface_ref/state/subinterface (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_subinterface is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_subinterface() directly.

    YANG Description: Reference to a subinterface -- this requires the base
interface to be specified using the interface leaf in
this container.  If only a reference to a base interface
is requuired, this leaf should not be set.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="subinterface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """subinterface must be of a type compatible with leafref""",
          'defined-type': "leafref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="subinterface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=False)""",
        })

    self.__subinterface = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_subinterface(self):
    self.__subinterface = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="subinterface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=False)

  interface = __builtin__.property(_get_interface)
  subinterface = __builtin__.property(_get_subinterface)


  _pyangbind_elements = OrderedDict([('interface', interface), ('subinterface', subinterface), ])


class yc_interface_ref_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_unnumbered_interface_ref(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/subinterfaces/subinterface/ipv6/unnumbered/interface-ref. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Reference to an interface or subinterface. The interface
that is being referenced is uniquely referenced based on
the specified interface and subinterface leaves. In contexts
where a Layer 3 interface is to be referenced, both the
interface and subinterface leaves must be populated, as
Layer 3 configuration within the OpenConfig models is
associated with a subinterface. In the case where a
Layer 2 interface is to be referenced, only the
interface is specified.

The interface/subinterface leaf tuple must be used as
the means by which the interface is specified, regardless
of any other context information (e.g., key in a list).
  """
  __slots__ = ('_path_helper', '_extmethods', '__config','__state',)

  _yang_name = 'interface-ref'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_unnumbered_interface_ref_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_unnumbered_interface_ref_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'subinterfaces', 'subinterface', 'ipv6', 'unnumbered', 'interface-ref']

  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/unnumbered/interface_ref/config (container)

    YANG Description: Configured reference to interface / subinterface
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/unnumbered/interface_ref/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Configured reference to interface / subinterface
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_unnumbered_interface_ref_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_unnumbered_interface_ref_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_unnumbered_interface_ref_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/unnumbered/interface_ref/state (container)

    YANG Description: Operational state for interface-ref
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/unnumbered/interface_ref/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: Operational state for interface-ref
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_unnumbered_interface_ref_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_unnumbered_interface_ref_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_unnumbered_interface_ref_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)


  _pyangbind_elements = OrderedDict([('config', config), ('state', state), ])


class yc_unnumbered_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_unnumbered(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/subinterfaces/subinterface/ipv6/unnumbered. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Top-level container for setting unnumbered interfaces.
Includes reference the interface that provides the
address information
  """
  __slots__ = ('_path_helper', '_extmethods', '__config','__state','__interface_ref',)

  _yang_name = 'unnumbered'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_unnumbered_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_unnumbered_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__interface_ref = YANGDynClass(base=yc_interface_ref_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_unnumbered_interface_ref, is_container='container', yang_name="interface-ref", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'subinterfaces', 'subinterface', 'ipv6', 'unnumbered']

  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/unnumbered/config (container)

    YANG Description: Configuration data for unnumbered interface
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/unnumbered/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Configuration data for unnumbered interface
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_unnumbered_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_unnumbered_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_unnumbered_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/unnumbered/state (container)

    YANG Description: Operational state data for unnumbered interfaces
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/unnumbered/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: Operational state data for unnumbered interfaces
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_unnumbered_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_unnumbered_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_unnumbered_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_interface_ref(self):
    """
    Getter method for interface_ref, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/unnumbered/interface_ref (container)

    YANG Description: Reference to an interface or subinterface. The interface
that is being referenced is uniquely referenced based on
the specified interface and subinterface leaves. In contexts
where a Layer 3 interface is to be referenced, both the
interface and subinterface leaves must be populated, as
Layer 3 configuration within the OpenConfig models is
associated with a subinterface. In the case where a
Layer 2 interface is to be referenced, only the
interface is specified.

The interface/subinterface leaf tuple must be used as
the means by which the interface is specified, regardless
of any other context information (e.g., key in a list).
    """
    return self.__interface_ref
      
  def _set_interface_ref(self, v, load=False):
    """
    Setter method for interface_ref, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/unnumbered/interface_ref (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_interface_ref is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_interface_ref() directly.

    YANG Description: Reference to an interface or subinterface. The interface
that is being referenced is uniquely referenced based on
the specified interface and subinterface leaves. In contexts
where a Layer 3 interface is to be referenced, both the
interface and subinterface leaves must be populated, as
Layer 3 configuration within the OpenConfig models is
associated with a subinterface. In the case where a
Layer 2 interface is to be referenced, only the
interface is specified.

The interface/subinterface leaf tuple must be used as
the means by which the interface is specified, regardless
of any other context information (e.g., key in a list).
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_interface_ref_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_unnumbered_interface_ref, is_container='container', yang_name="interface-ref", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """interface_ref must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_interface_ref_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_unnumbered_interface_ref, is_container='container', yang_name="interface-ref", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

    self.__interface_ref = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_interface_ref(self):
    self.__interface_ref = YANGDynClass(base=yc_interface_ref_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_unnumbered_interface_ref, is_container='container', yang_name="interface-ref", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)
  interface_ref = __builtin__.property(_get_interface_ref, _set_interface_ref)


  _pyangbind_elements = OrderedDict([('config', config), ('state', state), ('interface_ref', interface_ref), ])


class yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/subinterfaces/subinterface/ipv6/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Top-level config data for the IPv6 interface
  """
  __slots__ = ('_path_helper', '_extmethods', '__enabled','__mtu','__dup_addr_detect_transmits','__dhcp_client',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)
    self.__mtu = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), restriction_dict={'range': ['1280..max']}), is_leaf=True, yang_name="mtu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=True)
    self.__dup_addr_detect_transmits = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(1), is_leaf=True, yang_name="dup-addr-detect-transmits", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=True)
    self.__dhcp_client = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="dhcp-client", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'subinterfaces', 'subinterface', 'ipv6', 'config']

  def _get_enabled(self):
    """
    Getter method for enabled, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/config/enabled (boolean)

    YANG Description: Controls whether IPv6 is enabled or disabled on this
interface.  When IPv6 is enabled, this interface is
connected to an IPv6 stack, and the interface can send
and receive IPv6 packets.
    """
    return self.__enabled
      
  def _set_enabled(self, v, load=False):
    """
    Setter method for enabled, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/config/enabled (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_enabled is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_enabled() directly.

    YANG Description: Controls whether IPv6 is enabled or disabled on this
interface.  When IPv6 is enabled, this interface is
connected to an IPv6 stack, and the interface can send
and receive IPv6 packets.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """enabled must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)""",
        })

    self.__enabled = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_enabled(self):
    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)


  def _get_mtu(self):
    """
    Getter method for mtu, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/config/mtu (uint32)

    YANG Description: The size, in octets, of the largest IPv6 packet that the
interface will send and receive.

The server may restrict the allowed values for this leaf,
depending on the interface's type.

If this leaf is not configured, the operationally used MTU
depends on the interface's type.
    """
    return self.__mtu
      
  def _set_mtu(self, v, load=False):
    """
    Setter method for mtu, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/config/mtu (uint32)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mtu is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mtu() directly.

    YANG Description: The size, in octets, of the largest IPv6 packet that the
interface will send and receive.

The server may restrict the allowed values for this leaf,
depending on the interface's type.

If this leaf is not configured, the operationally used MTU
depends on the interface's type.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), restriction_dict={'range': ['1280..max']}), is_leaf=True, yang_name="mtu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mtu must be of a type compatible with uint32""",
          'defined-type': "uint32",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), restriction_dict={'range': ['1280..max']}), is_leaf=True, yang_name="mtu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=True)""",
        })

    self.__mtu = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mtu(self):
    self.__mtu = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), restriction_dict={'range': ['1280..max']}), is_leaf=True, yang_name="mtu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=True)


  def _get_dup_addr_detect_transmits(self):
    """
    Getter method for dup_addr_detect_transmits, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/config/dup_addr_detect_transmits (uint32)

    YANG Description: The number of consecutive Neighbor Solicitation messages
sent while performing Duplicate Address Detection on a
tentative address.  A value of zero indicates that
Duplicate Address Detection is not performed on
tentative addresses.  A value of one indicates a single
transmission with no follow-up retransmissions.
    """
    return self.__dup_addr_detect_transmits
      
  def _set_dup_addr_detect_transmits(self, v, load=False):
    """
    Setter method for dup_addr_detect_transmits, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/config/dup_addr_detect_transmits (uint32)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dup_addr_detect_transmits is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dup_addr_detect_transmits() directly.

    YANG Description: The number of consecutive Neighbor Solicitation messages
sent while performing Duplicate Address Detection on a
tentative address.  A value of zero indicates that
Duplicate Address Detection is not performed on
tentative addresses.  A value of one indicates a single
transmission with no follow-up retransmissions.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(1), is_leaf=True, yang_name="dup-addr-detect-transmits", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dup_addr_detect_transmits must be of a type compatible with uint32""",
          'defined-type': "uint32",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(1), is_leaf=True, yang_name="dup-addr-detect-transmits", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=True)""",
        })

    self.__dup_addr_detect_transmits = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dup_addr_detect_transmits(self):
    self.__dup_addr_detect_transmits = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(1), is_leaf=True, yang_name="dup-addr-detect-transmits", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=True)


  def _get_dhcp_client(self):
    """
    Getter method for dhcp_client, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/config/dhcp_client (boolean)

    YANG Description: Enables a DHCP client on the interface in order to request
an address
    """
    return self.__dhcp_client
      
  def _set_dhcp_client(self, v, load=False):
    """
    Setter method for dhcp_client, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/config/dhcp_client (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dhcp_client is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dhcp_client() directly.

    YANG Description: Enables a DHCP client on the interface in order to request
an address
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="dhcp-client", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dhcp_client must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="dhcp-client", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)""",
        })

    self.__dhcp_client = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dhcp_client(self):
    self.__dhcp_client = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="dhcp-client", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)

  enabled = __builtin__.property(_get_enabled, _set_enabled)
  mtu = __builtin__.property(_get_mtu, _set_mtu)
  dup_addr_detect_transmits = __builtin__.property(_get_dup_addr_detect_transmits, _set_dup_addr_detect_transmits)
  dhcp_client = __builtin__.property(_get_dhcp_client, _set_dhcp_client)


  _pyangbind_elements = OrderedDict([('enabled', enabled), ('mtu', mtu), ('dup_addr_detect_transmits', dup_addr_detect_transmits), ('dhcp_client', dhcp_client), ])


class yc_counters_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_state_counters(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/subinterfaces/subinterface/ipv6/state/counters. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Packet and byte counters for IP transmission and
reception for the address family.
  """
  __slots__ = ('_path_helper', '_extmethods', '__in_pkts','__in_octets','__in_error_pkts','__in_forwarded_pkts','__in_forwarded_octets','__in_discarded_pkts','__out_pkts','__out_octets','__out_error_pkts','__out_forwarded_pkts','__out_forwarded_octets','__out_discarded_pkts',)

  _yang_name = 'counters'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__in_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__in_octets = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__in_error_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-error-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__in_forwarded_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-forwarded-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__in_forwarded_octets = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-forwarded-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__in_discarded_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-discarded-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__out_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__out_octets = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__out_error_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-error-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__out_forwarded_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-forwarded-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__out_forwarded_octets = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-forwarded-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__out_discarded_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-discarded-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', 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 ['access-points', 'access-point', 'interfaces', 'interface', 'subinterfaces', 'subinterface', 'ipv6', 'state', 'counters']

  def _get_in_pkts(self):
    """
    Getter method for in_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/state/counters/in_pkts (oc-yang:counter64)

    YANG Description: The total number of IP packets received for the specified
address family, including those received in error
    """
    return self.__in_pkts
      
  def _set_in_pkts(self, v, load=False):
    """
    Setter method for in_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/state/counters/in_pkts (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_in_pkts is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_in_pkts() directly.

    YANG Description: The total number of IP packets received for the specified
address family, including those received in error
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """in_pkts must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__in_pkts = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_in_pkts(self):
    self.__in_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_in_octets(self):
    """
    Getter method for in_octets, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/state/counters/in_octets (oc-yang:counter64)

    YANG Description: The total number of octets received in input IP packets
for the specified address family, including those received
in error.
    """
    return self.__in_octets
      
  def _set_in_octets(self, v, load=False):
    """
    Setter method for in_octets, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/state/counters/in_octets (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_in_octets is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_in_octets() directly.

    YANG Description: The total number of octets received in input IP packets
for the specified address family, including those received
in error.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """in_octets must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__in_octets = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_in_octets(self):
    self.__in_octets = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_in_error_pkts(self):
    """
    Getter method for in_error_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/state/counters/in_error_pkts (oc-yang:counter64)

    YANG Description: Number of IP packets discarded due to errors for the
specified address family, including errors in the IP
header, no route found to the IP destination, invalid
address, unknown protocol, etc.
    """
    return self.__in_error_pkts
      
  def _set_in_error_pkts(self, v, load=False):
    """
    Setter method for in_error_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/state/counters/in_error_pkts (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_in_error_pkts is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_in_error_pkts() directly.

    YANG Description: Number of IP packets discarded due to errors for the
specified address family, including errors in the IP
header, no route found to the IP destination, invalid
address, unknown protocol, etc.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-error-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """in_error_pkts must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-error-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__in_error_pkts = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_in_error_pkts(self):
    self.__in_error_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-error-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_in_forwarded_pkts(self):
    """
    Getter method for in_forwarded_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/state/counters/in_forwarded_pkts (oc-yang:counter64)

    YANG Description: The number of input packets for which the device was not
their final IP destination and for which the device
attempted to find a route to forward them to that final
destination.
    """
    return self.__in_forwarded_pkts
      
  def _set_in_forwarded_pkts(self, v, load=False):
    """
    Setter method for in_forwarded_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/state/counters/in_forwarded_pkts (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_in_forwarded_pkts is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_in_forwarded_pkts() directly.

    YANG Description: The number of input packets for which the device was not
their final IP destination and for which the device
attempted to find a route to forward them to that final
destination.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-forwarded-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """in_forwarded_pkts must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-forwarded-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__in_forwarded_pkts = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_in_forwarded_pkts(self):
    self.__in_forwarded_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-forwarded-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_in_forwarded_octets(self):
    """
    Getter method for in_forwarded_octets, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/state/counters/in_forwarded_octets (oc-yang:counter64)

    YANG Description: The number of octets received in input IP packets
for the specified address family for which the device was
not their final IP destination and for which the
device attempted to find a route to forward them to that
final destination.
    """
    return self.__in_forwarded_octets
      
  def _set_in_forwarded_octets(self, v, load=False):
    """
    Setter method for in_forwarded_octets, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/state/counters/in_forwarded_octets (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_in_forwarded_octets is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_in_forwarded_octets() directly.

    YANG Description: The number of octets received in input IP packets
for the specified address family for which the device was
not their final IP destination and for which the
device attempted to find a route to forward them to that
final destination.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-forwarded-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """in_forwarded_octets must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-forwarded-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__in_forwarded_octets = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_in_forwarded_octets(self):
    self.__in_forwarded_octets = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-forwarded-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_in_discarded_pkts(self):
    """
    Getter method for in_discarded_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/state/counters/in_discarded_pkts (oc-yang:counter64)

    YANG Description: The number of input IP packets for the
specified address family, for which no problems were
encountered to prevent their continued processing, but
were discarded (e.g., for lack of buffer space).
    """
    return self.__in_discarded_pkts
      
  def _set_in_discarded_pkts(self, v, load=False):
    """
    Setter method for in_discarded_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/state/counters/in_discarded_pkts (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_in_discarded_pkts is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_in_discarded_pkts() directly.

    YANG Description: The number of input IP packets for the
specified address family, for which no problems were
encountered to prevent their continued processing, but
were discarded (e.g., for lack of buffer space).
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-discarded-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """in_discarded_pkts must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-discarded-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__in_discarded_pkts = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_in_discarded_pkts(self):
    self.__in_discarded_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-discarded-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_out_pkts(self):
    """
    Getter method for out_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/state/counters/out_pkts (oc-yang:counter64)

    YANG Description: The total number of IP packets for the
specified address family that the device supplied
to the lower layers for transmission.  This includes
packets generated locally and those forwarded by the
device.
    """
    return self.__out_pkts
      
  def _set_out_pkts(self, v, load=False):
    """
    Setter method for out_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/state/counters/out_pkts (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_out_pkts is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_out_pkts() directly.

    YANG Description: The total number of IP packets for the
specified address family that the device supplied
to the lower layers for transmission.  This includes
packets generated locally and those forwarded by the
device.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """out_pkts must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__out_pkts = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_out_pkts(self):
    self.__out_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_out_octets(self):
    """
    Getter method for out_octets, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/state/counters/out_octets (oc-yang:counter64)

    YANG Description: The total number of octets in IP packets for the
specified address family that the device
supplied to the lower layers for transmission.  This
includes packets generated locally and those forwarded by
the device.
    """
    return self.__out_octets
      
  def _set_out_octets(self, v, load=False):
    """
    Setter method for out_octets, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/state/counters/out_octets (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_out_octets is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_out_octets() directly.

    YANG Description: The total number of octets in IP packets for the
specified address family that the device
supplied to the lower layers for transmission.  This
includes packets generated locally and those forwarded by
the device.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """out_octets must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__out_octets = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_out_octets(self):
    self.__out_octets = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_out_error_pkts(self):
    """
    Getter method for out_error_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/state/counters/out_error_pkts (oc-yang:counter64)

    YANG Description: Number of IP packets for the specified address family
locally generated and discarded due to errors, including
no route found to the IP destination.
    """
    return self.__out_error_pkts
      
  def _set_out_error_pkts(self, v, load=False):
    """
    Setter method for out_error_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/state/counters/out_error_pkts (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_out_error_pkts is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_out_error_pkts() directly.

    YANG Description: Number of IP packets for the specified address family
locally generated and discarded due to errors, including
no route found to the IP destination.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-error-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """out_error_pkts must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-error-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__out_error_pkts = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_out_error_pkts(self):
    self.__out_error_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-error-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_out_forwarded_pkts(self):
    """
    Getter method for out_forwarded_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/state/counters/out_forwarded_pkts (oc-yang:counter64)

    YANG Description: The number of packets for which this entity was not their
final IP destination and for which it was successful in
finding a path to their final destination.
    """
    return self.__out_forwarded_pkts
      
  def _set_out_forwarded_pkts(self, v, load=False):
    """
    Setter method for out_forwarded_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/state/counters/out_forwarded_pkts (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_out_forwarded_pkts is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_out_forwarded_pkts() directly.

    YANG Description: The number of packets for which this entity was not their
final IP destination and for which it was successful in
finding a path to their final destination.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-forwarded-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """out_forwarded_pkts must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-forwarded-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__out_forwarded_pkts = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_out_forwarded_pkts(self):
    self.__out_forwarded_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-forwarded-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_out_forwarded_octets(self):
    """
    Getter method for out_forwarded_octets, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/state/counters/out_forwarded_octets (oc-yang:counter64)

    YANG Description: The number of octets in packets for which this entity was
not their final IP destination and for which it was
successful in finding a path to their final destination.
    """
    return self.__out_forwarded_octets
      
  def _set_out_forwarded_octets(self, v, load=False):
    """
    Setter method for out_forwarded_octets, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/state/counters/out_forwarded_octets (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_out_forwarded_octets is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_out_forwarded_octets() directly.

    YANG Description: The number of octets in packets for which this entity was
not their final IP destination and for which it was
successful in finding a path to their final destination.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-forwarded-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """out_forwarded_octets must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-forwarded-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__out_forwarded_octets = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_out_forwarded_octets(self):
    self.__out_forwarded_octets = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-forwarded-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_out_discarded_pkts(self):
    """
    Getter method for out_discarded_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/state/counters/out_discarded_pkts (oc-yang:counter64)

    YANG Description: The number of output IP packets for the
specified address family for which no problem was
encountered to prevent their transmission to their
destination, but were discarded (e.g., for lack of
buffer space).
    """
    return self.__out_discarded_pkts
      
  def _set_out_discarded_pkts(self, v, load=False):
    """
    Setter method for out_discarded_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/state/counters/out_discarded_pkts (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_out_discarded_pkts is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_out_discarded_pkts() directly.

    YANG Description: The number of output IP packets for the
specified address family for which no problem was
encountered to prevent their transmission to their
destination, but were discarded (e.g., for lack of
buffer space).
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-discarded-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """out_discarded_pkts must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-discarded-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__out_discarded_pkts = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_out_discarded_pkts(self):
    self.__out_discarded_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-discarded-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)

  in_pkts = __builtin__.property(_get_in_pkts)
  in_octets = __builtin__.property(_get_in_octets)
  in_error_pkts = __builtin__.property(_get_in_error_pkts)
  in_forwarded_pkts = __builtin__.property(_get_in_forwarded_pkts)
  in_forwarded_octets = __builtin__.property(_get_in_forwarded_octets)
  in_discarded_pkts = __builtin__.property(_get_in_discarded_pkts)
  out_pkts = __builtin__.property(_get_out_pkts)
  out_octets = __builtin__.property(_get_out_octets)
  out_error_pkts = __builtin__.property(_get_out_error_pkts)
  out_forwarded_pkts = __builtin__.property(_get_out_forwarded_pkts)
  out_forwarded_octets = __builtin__.property(_get_out_forwarded_octets)
  out_discarded_pkts = __builtin__.property(_get_out_discarded_pkts)


  _pyangbind_elements = OrderedDict([('in_pkts', in_pkts), ('in_octets', in_octets), ('in_error_pkts', in_error_pkts), ('in_forwarded_pkts', in_forwarded_pkts), ('in_forwarded_octets', in_forwarded_octets), ('in_discarded_pkts', in_discarded_pkts), ('out_pkts', out_pkts), ('out_octets', out_octets), ('out_error_pkts', out_error_pkts), ('out_forwarded_pkts', out_forwarded_pkts), ('out_forwarded_octets', out_forwarded_octets), ('out_discarded_pkts', out_discarded_pkts), ])


class yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/subinterfaces/subinterface/ipv6/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Top-level operational state data for the IPv6 interface
  """
  __slots__ = ('_path_helper', '_extmethods', '__enabled','__mtu','__dup_addr_detect_transmits','__dhcp_client','__counters',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)
    self.__mtu = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), restriction_dict={'range': ['1280..max']}), is_leaf=True, yang_name="mtu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=False)
    self.__dup_addr_detect_transmits = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(1), is_leaf=True, yang_name="dup-addr-detect-transmits", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=False)
    self.__dhcp_client = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="dhcp-client", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)
    self.__counters = YANGDynClass(base=yc_counters_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_state_counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', 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 ['access-points', 'access-point', 'interfaces', 'interface', 'subinterfaces', 'subinterface', 'ipv6', 'state']

  def _get_enabled(self):
    """
    Getter method for enabled, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/state/enabled (boolean)

    YANG Description: Controls whether IPv6 is enabled or disabled on this
interface.  When IPv6 is enabled, this interface is
connected to an IPv6 stack, and the interface can send
and receive IPv6 packets.
    """
    return self.__enabled
      
  def _set_enabled(self, v, load=False):
    """
    Setter method for enabled, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/state/enabled (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_enabled is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_enabled() directly.

    YANG Description: Controls whether IPv6 is enabled or disabled on this
interface.  When IPv6 is enabled, this interface is
connected to an IPv6 stack, and the interface can send
and receive IPv6 packets.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """enabled must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)""",
        })

    self.__enabled = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_enabled(self):
    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)


  def _get_mtu(self):
    """
    Getter method for mtu, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/state/mtu (uint32)

    YANG Description: The size, in octets, of the largest IPv6 packet that the
interface will send and receive.

The server may restrict the allowed values for this leaf,
depending on the interface's type.

If this leaf is not configured, the operationally used MTU
depends on the interface's type.
    """
    return self.__mtu
      
  def _set_mtu(self, v, load=False):
    """
    Setter method for mtu, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/state/mtu (uint32)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mtu is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mtu() directly.

    YANG Description: The size, in octets, of the largest IPv6 packet that the
interface will send and receive.

The server may restrict the allowed values for this leaf,
depending on the interface's type.

If this leaf is not configured, the operationally used MTU
depends on the interface's type.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), restriction_dict={'range': ['1280..max']}), is_leaf=True, yang_name="mtu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mtu must be of a type compatible with uint32""",
          'defined-type': "uint32",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), restriction_dict={'range': ['1280..max']}), is_leaf=True, yang_name="mtu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=False)""",
        })

    self.__mtu = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mtu(self):
    self.__mtu = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), restriction_dict={'range': ['1280..max']}), is_leaf=True, yang_name="mtu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=False)


  def _get_dup_addr_detect_transmits(self):
    """
    Getter method for dup_addr_detect_transmits, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/state/dup_addr_detect_transmits (uint32)

    YANG Description: The number of consecutive Neighbor Solicitation messages
sent while performing Duplicate Address Detection on a
tentative address.  A value of zero indicates that
Duplicate Address Detection is not performed on
tentative addresses.  A value of one indicates a single
transmission with no follow-up retransmissions.
    """
    return self.__dup_addr_detect_transmits
      
  def _set_dup_addr_detect_transmits(self, v, load=False):
    """
    Setter method for dup_addr_detect_transmits, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/state/dup_addr_detect_transmits (uint32)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dup_addr_detect_transmits is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dup_addr_detect_transmits() directly.

    YANG Description: The number of consecutive Neighbor Solicitation messages
sent while performing Duplicate Address Detection on a
tentative address.  A value of zero indicates that
Duplicate Address Detection is not performed on
tentative addresses.  A value of one indicates a single
transmission with no follow-up retransmissions.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(1), is_leaf=True, yang_name="dup-addr-detect-transmits", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dup_addr_detect_transmits must be of a type compatible with uint32""",
          'defined-type': "uint32",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(1), is_leaf=True, yang_name="dup-addr-detect-transmits", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=False)""",
        })

    self.__dup_addr_detect_transmits = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dup_addr_detect_transmits(self):
    self.__dup_addr_detect_transmits = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(1), is_leaf=True, yang_name="dup-addr-detect-transmits", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=False)


  def _get_dhcp_client(self):
    """
    Getter method for dhcp_client, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/state/dhcp_client (boolean)

    YANG Description: Enables a DHCP client on the interface in order to request
an address
    """
    return self.__dhcp_client
      
  def _set_dhcp_client(self, v, load=False):
    """
    Setter method for dhcp_client, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/state/dhcp_client (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dhcp_client is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dhcp_client() directly.

    YANG Description: Enables a DHCP client on the interface in order to request
an address
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="dhcp-client", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dhcp_client must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="dhcp-client", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)""",
        })

    self.__dhcp_client = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dhcp_client(self):
    self.__dhcp_client = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="dhcp-client", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)


  def _get_counters(self):
    """
    Getter method for counters, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/state/counters (container)

    YANG Description: Packet and byte counters for IP transmission and
reception for the address family.
    """
    return self.__counters
      
  def _set_counters(self, v, load=False):
    """
    Setter method for counters, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/state/counters (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_counters is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_counters() directly.

    YANG Description: Packet and byte counters for IP transmission and
reception for the address family.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_counters_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_state_counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """counters must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_counters_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_state_counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=False)""",
        })

    self.__counters = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_counters(self):
    self.__counters = YANGDynClass(base=yc_counters_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_state_counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=False)

  enabled = __builtin__.property(_get_enabled)
  mtu = __builtin__.property(_get_mtu)
  dup_addr_detect_transmits = __builtin__.property(_get_dup_addr_detect_transmits)
  dhcp_client = __builtin__.property(_get_dhcp_client)
  counters = __builtin__.property(_get_counters)


  _pyangbind_elements = OrderedDict([('enabled', enabled), ('mtu', mtu), ('dup_addr_detect_transmits', dup_addr_detect_transmits), ('dhcp_client', dhcp_client), ('counters', counters), ])


class yc_ipv6_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/subinterfaces/subinterface/ipv6. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Parameters for the IPv6 address family.
  """
  __slots__ = ('_path_helper', '_extmethods', '__addresses','__router_advertisement','__neighbors','__unnumbered','__config','__state',)

  _yang_name = 'ipv6'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__addresses = YANGDynClass(base=yc_addresses_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_addresses, is_container='container', yang_name="addresses", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__router_advertisement = YANGDynClass(base=yc_router_advertisement_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_router_advertisement, is_container='container', yang_name="router-advertisement", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__neighbors = YANGDynClass(base=yc_neighbors_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_neighbors, is_container='container', yang_name="neighbors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__unnumbered = YANGDynClass(base=yc_unnumbered_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_unnumbered, is_container='container', yang_name="unnumbered", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'subinterfaces', 'subinterface', 'ipv6']

  def _get_addresses(self):
    """
    Getter method for addresses, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/addresses (container)

    YANG Description: Enclosing container for address list
    """
    return self.__addresses
      
  def _set_addresses(self, v, load=False):
    """
    Setter method for addresses, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/addresses (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_addresses is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_addresses() directly.

    YANG Description: Enclosing container for address list
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_addresses_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_addresses, is_container='container', yang_name="addresses", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """addresses must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_addresses_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_addresses, is_container='container', yang_name="addresses", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

    self.__addresses = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_addresses(self):
    self.__addresses = YANGDynClass(base=yc_addresses_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_addresses, is_container='container', yang_name="addresses", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_router_advertisement(self):
    """
    Getter method for router_advertisement, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/router_advertisement (container)

    YANG Description: Configuration and operational state parameters relating to
router advertisements.
    """
    return self.__router_advertisement
      
  def _set_router_advertisement(self, v, load=False):
    """
    Setter method for router_advertisement, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/router_advertisement (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_router_advertisement is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_router_advertisement() directly.

    YANG Description: Configuration and operational state parameters relating to
router advertisements.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_router_advertisement_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_router_advertisement, is_container='container', yang_name="router-advertisement", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """router_advertisement must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_router_advertisement_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_router_advertisement, is_container='container', yang_name="router-advertisement", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

    self.__router_advertisement = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_router_advertisement(self):
    self.__router_advertisement = YANGDynClass(base=yc_router_advertisement_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_router_advertisement, is_container='container', yang_name="router-advertisement", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_neighbors(self):
    """
    Getter method for neighbors, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/neighbors (container)

    YANG Description: Enclosing container for list of IPv6 neighbors
    """
    return self.__neighbors
      
  def _set_neighbors(self, v, load=False):
    """
    Setter method for neighbors, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/neighbors (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_neighbors is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_neighbors() directly.

    YANG Description: Enclosing container for list of IPv6 neighbors
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_neighbors_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_neighbors, is_container='container', yang_name="neighbors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """neighbors must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_neighbors_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_neighbors, is_container='container', yang_name="neighbors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

    self.__neighbors = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_neighbors(self):
    self.__neighbors = YANGDynClass(base=yc_neighbors_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_neighbors, is_container='container', yang_name="neighbors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_unnumbered(self):
    """
    Getter method for unnumbered, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/unnumbered (container)

    YANG Description: Top-level container for setting unnumbered interfaces.
Includes reference the interface that provides the
address information
    """
    return self.__unnumbered
      
  def _set_unnumbered(self, v, load=False):
    """
    Setter method for unnumbered, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/unnumbered (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_unnumbered is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_unnumbered() directly.

    YANG Description: Top-level container for setting unnumbered interfaces.
Includes reference the interface that provides the
address information
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_unnumbered_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_unnumbered, is_container='container', yang_name="unnumbered", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """unnumbered must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_unnumbered_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_unnumbered, is_container='container', yang_name="unnumbered", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

    self.__unnumbered = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_unnumbered(self):
    self.__unnumbered = YANGDynClass(base=yc_unnumbered_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_unnumbered, is_container='container', yang_name="unnumbered", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/config (container)

    YANG Description: Top-level config data for the IPv6 interface
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Top-level config data for the IPv6 interface
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/state (container)

    YANG Description: Top-level operational state data for the IPv6 interface
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6/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: Top-level operational state data for the IPv6 interface
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

  addresses = __builtin__.property(_get_addresses, _set_addresses)
  router_advertisement = __builtin__.property(_get_router_advertisement, _set_router_advertisement)
  neighbors = __builtin__.property(_get_neighbors, _set_neighbors)
  unnumbered = __builtin__.property(_get_unnumbered, _set_unnumbered)
  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)


  _pyangbind_elements = OrderedDict([('addresses', addresses), ('router_advertisement', router_advertisement), ('neighbors', neighbors), ('unnumbered', unnumbered), ('config', config), ('state', state), ])


class yc_subinterface_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/subinterfaces/subinterface. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: The list of subinterfaces (logical interfaces) associated
with a physical interface
  """
  __slots__ = ('_path_helper', '_extmethods', '__index','__config','__state','__ipv4','__ipv6',)

  _yang_name = 'subinterface'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__index = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__ipv4 = YANGDynClass(base=yc_ipv4_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4, is_container='container', yang_name="ipv4", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__ipv6 = YANGDynClass(base=yc_ipv6_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6, is_container='container', yang_name="ipv6", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'subinterfaces', 'subinterface']

  def _get_index(self):
    """
    Getter method for index, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/index (leafref)

    YANG Description: The index number of the subinterface -- used to address
the logical interface
    """
    return self.__index
      
  def _set_index(self, v, load=False):
    """
    Setter method for index, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/index (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_index is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_index() directly.

    YANG Description: The index number of the subinterface -- used to address
the logical interface
    """
    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="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """index must be of a type compatible with leafref""",
          'defined-type': "leafref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)""",
        })

    self.__index = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_index(self):
    self.__index = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)


  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/config (container)

    YANG Description: Configurable items at the subinterface level
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Configurable items at the subinterface level
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/state (container)

    YANG Description: Operational state data for logical interfaces
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/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: Operational state data for logical interfaces
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_ipv4(self):
    """
    Getter method for ipv4, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4 (container)

    YANG Description: Parameters for the IPv4 address family.
    """
    return self.__ipv4
      
  def _set_ipv4(self, v, load=False):
    """
    Setter method for ipv4, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv4 (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ipv4 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ipv4() directly.

    YANG Description: Parameters for the IPv4 address family.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_ipv4_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4, is_container='container', yang_name="ipv4", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ipv4 must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_ipv4_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4, is_container='container', yang_name="ipv4", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

    self.__ipv4 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ipv4(self):
    self.__ipv4 = YANGDynClass(base=yc_ipv4_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv4, is_container='container', yang_name="ipv4", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_ipv6(self):
    """
    Getter method for ipv6, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6 (container)

    YANG Description: Parameters for the IPv6 address family.
    """
    return self.__ipv6
      
  def _set_ipv6(self, v, load=False):
    """
    Setter method for ipv6, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface/ipv6 (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ipv6 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ipv6() directly.

    YANG Description: Parameters for the IPv6 address family.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_ipv6_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6, is_container='container', yang_name="ipv6", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ipv6 must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_ipv6_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6, is_container='container', yang_name="ipv6", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

    self.__ipv6 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ipv6(self):
    self.__ipv6 = YANGDynClass(base=yc_ipv6_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface_ipv6, is_container='container', yang_name="ipv6", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

  index = __builtin__.property(_get_index, _set_index)
  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)
  ipv4 = __builtin__.property(_get_ipv4, _set_ipv4)
  ipv6 = __builtin__.property(_get_ipv6, _set_ipv6)


  _pyangbind_elements = OrderedDict([('index', index), ('config', config), ('state', state), ('ipv4', ipv4), ('ipv6', ipv6), ])


class yc_subinterfaces_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/subinterfaces. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Enclosing container for the list of subinterfaces associated
with a physical interface
  """
  __slots__ = ('_path_helper', '_extmethods', '__subinterface',)

  _yang_name = 'subinterfaces'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__subinterface = YANGDynClass(base=YANGListType("index",yc_subinterface_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface, yang_name="subinterface", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='index', extensions=None), is_container='list', yang_name="subinterface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='list', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'subinterfaces']

  def _get_subinterface(self):
    """
    Getter method for subinterface, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface (list)

    YANG Description: The list of subinterfaces (logical interfaces) associated
with a physical interface
    """
    return self.__subinterface
      
  def _set_subinterface(self, v, load=False):
    """
    Setter method for subinterface, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces/subinterface (list)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_subinterface is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_subinterface() directly.

    YANG Description: The list of subinterfaces (logical interfaces) associated
with a physical interface
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGListType("index",yc_subinterface_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface, yang_name="subinterface", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='index', extensions=None), is_container='list', yang_name="subinterface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='list', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """subinterface must be of a type compatible with list""",
          'defined-type': "list",
          'generated-type': """YANGDynClass(base=YANGListType("index",yc_subinterface_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface, yang_name="subinterface", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='index', extensions=None), is_container='list', yang_name="subinterface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='list', is_config=True)""",
        })

    self.__subinterface = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_subinterface(self):
    self.__subinterface = YANGDynClass(base=YANGListType("index",yc_subinterface_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces_subinterface, yang_name="subinterface", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='index', extensions=None), is_container='list', yang_name="subinterface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='list', is_config=True)

  subinterface = __builtin__.property(_get_subinterface, _set_subinterface)


  _pyangbind_elements = OrderedDict([('subinterface', subinterface), ])


class yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_aggregation_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/aggregation/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Configuration variables for logical aggregate /
LAG interfaces
  """
  __slots__ = ('_path_helper', '_extmethods', '__lag_type','__min_links',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__lag_type = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'LACP': {}, 'STATIC': {}},), is_leaf=True, yang_name="lag-type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='aggregation-type', is_config=True)
    self.__min_links = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="min-links", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint16', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'aggregation', 'config']

  def _get_lag_type(self):
    """
    Getter method for lag_type, mapped from YANG variable /access_points/access_point/interfaces/interface/aggregation/config/lag_type (aggregation-type)

    YANG Description: Sets the type of LAG, i.e., how it is
configured / maintained
    """
    return self.__lag_type
      
  def _set_lag_type(self, v, load=False):
    """
    Setter method for lag_type, mapped from YANG variable /access_points/access_point/interfaces/interface/aggregation/config/lag_type (aggregation-type)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_lag_type is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_lag_type() directly.

    YANG Description: Sets the type of LAG, i.e., how it is
configured / maintained
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'LACP': {}, 'STATIC': {}},), is_leaf=True, yang_name="lag-type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='aggregation-type', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """lag_type must be of a type compatible with aggregation-type""",
          'defined-type': "openconfig-ap-interfaces:aggregation-type",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'LACP': {}, 'STATIC': {}},), is_leaf=True, yang_name="lag-type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='aggregation-type', is_config=True)""",
        })

    self.__lag_type = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_lag_type(self):
    self.__lag_type = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'LACP': {}, 'STATIC': {}},), is_leaf=True, yang_name="lag-type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='aggregation-type', is_config=True)


  def _get_min_links(self):
    """
    Getter method for min_links, mapped from YANG variable /access_points/access_point/interfaces/interface/aggregation/config/min_links (uint16)

    YANG Description: Specifies the mininum number of member
interfaces that must be active for the aggregate interface
to be available
    """
    return self.__min_links
      
  def _set_min_links(self, v, load=False):
    """
    Setter method for min_links, mapped from YANG variable /access_points/access_point/interfaces/interface/aggregation/config/min_links (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_min_links is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_min_links() directly.

    YANG Description: Specifies the mininum number of member
interfaces that must be active for the aggregate interface
to be available
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="min-links", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint16', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """min_links must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="min-links", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint16', is_config=True)""",
        })

    self.__min_links = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_min_links(self):
    self.__min_links = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="min-links", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint16', is_config=True)

  lag_type = __builtin__.property(_get_lag_type, _set_lag_type)
  min_links = __builtin__.property(_get_min_links, _set_min_links)


  _pyangbind_elements = OrderedDict([('lag_type', lag_type), ('min_links', min_links), ])


class yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_aggregation_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/aggregation/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Operational state variables for logical
aggregate / LAG interfaces
  """
  __slots__ = ('_path_helper', '_extmethods', '__lag_type','__min_links','__lag_speed','__member',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__lag_type = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'LACP': {}, 'STATIC': {}},), is_leaf=True, yang_name="lag-type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='aggregation-type', is_config=False)
    self.__min_links = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="min-links", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint16', is_config=False)
    self.__lag_speed = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="lag-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=False)
    self.__member = YANGDynClass(unique=True, base=TypedListType(allowed_type=six.text_type), is_leaf=False, yang_name="member", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-if:base-interface-ref', 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 ['access-points', 'access-point', 'interfaces', 'interface', 'aggregation', 'state']

  def _get_lag_type(self):
    """
    Getter method for lag_type, mapped from YANG variable /access_points/access_point/interfaces/interface/aggregation/state/lag_type (aggregation-type)

    YANG Description: Sets the type of LAG, i.e., how it is
configured / maintained
    """
    return self.__lag_type
      
  def _set_lag_type(self, v, load=False):
    """
    Setter method for lag_type, mapped from YANG variable /access_points/access_point/interfaces/interface/aggregation/state/lag_type (aggregation-type)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_lag_type is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_lag_type() directly.

    YANG Description: Sets the type of LAG, i.e., how it is
configured / maintained
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'LACP': {}, 'STATIC': {}},), is_leaf=True, yang_name="lag-type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='aggregation-type', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """lag_type must be of a type compatible with aggregation-type""",
          'defined-type': "openconfig-ap-interfaces:aggregation-type",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'LACP': {}, 'STATIC': {}},), is_leaf=True, yang_name="lag-type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='aggregation-type', is_config=False)""",
        })

    self.__lag_type = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_lag_type(self):
    self.__lag_type = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'LACP': {}, 'STATIC': {}},), is_leaf=True, yang_name="lag-type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='aggregation-type', is_config=False)


  def _get_min_links(self):
    """
    Getter method for min_links, mapped from YANG variable /access_points/access_point/interfaces/interface/aggregation/state/min_links (uint16)

    YANG Description: Specifies the mininum number of member
interfaces that must be active for the aggregate interface
to be available
    """
    return self.__min_links
      
  def _set_min_links(self, v, load=False):
    """
    Setter method for min_links, mapped from YANG variable /access_points/access_point/interfaces/interface/aggregation/state/min_links (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_min_links is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_min_links() directly.

    YANG Description: Specifies the mininum number of member
interfaces that must be active for the aggregate interface
to be available
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="min-links", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint16', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """min_links must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="min-links", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint16', is_config=False)""",
        })

    self.__min_links = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_min_links(self):
    self.__min_links = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="min-links", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint16', is_config=False)


  def _get_lag_speed(self):
    """
    Getter method for lag_speed, mapped from YANG variable /access_points/access_point/interfaces/interface/aggregation/state/lag_speed (uint32)

    YANG Description: Reports effective speed of the aggregate interface,
based on speed of active member interfaces
    """
    return self.__lag_speed
      
  def _set_lag_speed(self, v, load=False):
    """
    Setter method for lag_speed, mapped from YANG variable /access_points/access_point/interfaces/interface/aggregation/state/lag_speed (uint32)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_lag_speed is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_lag_speed() directly.

    YANG Description: Reports effective speed of the aggregate interface,
based on speed of active member interfaces
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="lag-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """lag_speed must be of a type compatible with uint32""",
          'defined-type': "uint32",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="lag-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=False)""",
        })

    self.__lag_speed = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_lag_speed(self):
    self.__lag_speed = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="lag-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=False)


  def _get_member(self):
    """
    Getter method for member, mapped from YANG variable /access_points/access_point/interfaces/interface/aggregation/state/member (oc-if:base-interface-ref)

    YANG Description: List of current member interfaces for the aggregate,
expressed as references to existing interfaces
    """
    return self.__member
      
  def _set_member(self, v, load=False):
    """
    Setter method for member, mapped from YANG variable /access_points/access_point/interfaces/interface/aggregation/state/member (oc-if:base-interface-ref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_member is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_member() directly.

    YANG Description: List of current member interfaces for the aggregate,
expressed as references to existing interfaces
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=six.text_type), is_leaf=False, yang_name="member", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-if:base-interface-ref', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """member must be of a type compatible with oc-if:base-interface-ref""",
          'defined-type': "oc-if:base-interface-ref",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=six.text_type), is_leaf=False, yang_name="member", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-if:base-interface-ref', is_config=False)""",
        })

    self.__member = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_member(self):
    self.__member = YANGDynClass(unique=True, base=TypedListType(allowed_type=six.text_type), is_leaf=False, yang_name="member", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-if:base-interface-ref', is_config=False)

  lag_type = __builtin__.property(_get_lag_type)
  min_links = __builtin__.property(_get_min_links)
  lag_speed = __builtin__.property(_get_lag_speed)
  member = __builtin__.property(_get_member)


  _pyangbind_elements = OrderedDict([('lag_type', lag_type), ('min_links', min_links), ('lag_speed', lag_speed), ('member', member), ])


class yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_aggregation_switched_vlan_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/aggregation/switched-vlan/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Configuration parameters for VLANs
  """
  __slots__ = ('_path_helper', '_extmethods', '__interface_mode','__native_vlan','__access_vlan','__trunk_vlans',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__interface_mode = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'ACCESS': {}, 'TRUNK': {}},), is_leaf=True, yang_name="interface-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-vlan-types:vlan-mode-type', is_config=True)
    self.__native_vlan = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}), is_leaf=True, yang_name="native-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-vlan-types:vlan-id', is_config=True)
    self.__access_vlan = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}), is_leaf=True, yang_name="access-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-vlan-types:vlan-id', is_config=True)
    self.__trunk_vlans = YANGDynClass(unique=True, base=TypedListType(allowed_type=[RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|[1-9])\\.\\.(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|[1-9])'}),]), is_leaf=False, yang_name="trunk-vlans", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='union', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'aggregation', 'switched-vlan', 'config']

  def _get_interface_mode(self):
    """
    Getter method for interface_mode, mapped from YANG variable /access_points/access_point/interfaces/interface/aggregation/switched_vlan/config/interface_mode (oc-vlan-types:vlan-mode-type)

    YANG Description: Set the interface to access or trunk mode for
VLANs
    """
    return self.__interface_mode
      
  def _set_interface_mode(self, v, load=False):
    """
    Setter method for interface_mode, mapped from YANG variable /access_points/access_point/interfaces/interface/aggregation/switched_vlan/config/interface_mode (oc-vlan-types:vlan-mode-type)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_interface_mode is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_interface_mode() directly.

    YANG Description: Set the interface to access or trunk mode for
VLANs
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'ACCESS': {}, 'TRUNK': {}},), is_leaf=True, yang_name="interface-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-vlan-types:vlan-mode-type', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """interface_mode must be of a type compatible with oc-vlan-types:vlan-mode-type""",
          'defined-type': "oc-vlan-types:vlan-mode-type",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'ACCESS': {}, 'TRUNK': {}},), is_leaf=True, yang_name="interface-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-vlan-types:vlan-mode-type', is_config=True)""",
        })

    self.__interface_mode = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_interface_mode(self):
    self.__interface_mode = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'ACCESS': {}, 'TRUNK': {}},), is_leaf=True, yang_name="interface-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-vlan-types:vlan-mode-type', is_config=True)


  def _get_native_vlan(self):
    """
    Getter method for native_vlan, mapped from YANG variable /access_points/access_point/interfaces/interface/aggregation/switched_vlan/config/native_vlan (oc-vlan-types:vlan-id)

    YANG Description: Set the native VLAN id for untagged frames arriving on
a trunk interface.  Tagged frames sent on an interface
configured with a native VLAN should have their tags
stripped prior to transmission. This configuration is only
valid on a trunk interface.
    """
    return self.__native_vlan
      
  def _set_native_vlan(self, v, load=False):
    """
    Setter method for native_vlan, mapped from YANG variable /access_points/access_point/interfaces/interface/aggregation/switched_vlan/config/native_vlan (oc-vlan-types:vlan-id)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_native_vlan is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_native_vlan() directly.

    YANG Description: Set the native VLAN id for untagged frames arriving on
a trunk interface.  Tagged frames sent on an interface
configured with a native VLAN should have their tags
stripped prior to transmission. This configuration is only
valid on a trunk interface.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}), is_leaf=True, yang_name="native-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-vlan-types:vlan-id', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """native_vlan must be of a type compatible with oc-vlan-types:vlan-id""",
          'defined-type': "oc-vlan-types:vlan-id",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}), is_leaf=True, yang_name="native-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-vlan-types:vlan-id', is_config=True)""",
        })

    self.__native_vlan = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_native_vlan(self):
    self.__native_vlan = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}), is_leaf=True, yang_name="native-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-vlan-types:vlan-id', is_config=True)


  def _get_access_vlan(self):
    """
    Getter method for access_vlan, mapped from YANG variable /access_points/access_point/interfaces/interface/aggregation/switched_vlan/config/access_vlan (oc-vlan-types:vlan-id)

    YANG Description: Assign the access vlan to the access port.
    """
    return self.__access_vlan
      
  def _set_access_vlan(self, v, load=False):
    """
    Setter method for access_vlan, mapped from YANG variable /access_points/access_point/interfaces/interface/aggregation/switched_vlan/config/access_vlan (oc-vlan-types:vlan-id)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_access_vlan is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_access_vlan() directly.

    YANG Description: Assign the access vlan to the access port.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}), is_leaf=True, yang_name="access-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-vlan-types:vlan-id', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """access_vlan must be of a type compatible with oc-vlan-types:vlan-id""",
          'defined-type': "oc-vlan-types:vlan-id",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}), is_leaf=True, yang_name="access-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-vlan-types:vlan-id', is_config=True)""",
        })

    self.__access_vlan = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_access_vlan(self):
    self.__access_vlan = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}), is_leaf=True, yang_name="access-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-vlan-types:vlan-id', is_config=True)


  def _get_trunk_vlans(self):
    """
    Getter method for trunk_vlans, mapped from YANG variable /access_points/access_point/interfaces/interface/aggregation/switched_vlan/config/trunk_vlans (union)

    YANG Description: Specify VLANs, or ranges thereof, that the interface may
carry when in trunk mode.  If not specified, all VLANs are
allowed on the interface. Ranges are specified in the form
x..y, where x<y - ranges are assumed to be inclusive (such
that the VLAN range is x <= range <= y.
    """
    return self.__trunk_vlans
      
  def _set_trunk_vlans(self, v, load=False):
    """
    Setter method for trunk_vlans, mapped from YANG variable /access_points/access_point/interfaces/interface/aggregation/switched_vlan/config/trunk_vlans (union)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_trunk_vlans is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_trunk_vlans() directly.

    YANG Description: Specify VLANs, or ranges thereof, that the interface may
carry when in trunk mode.  If not specified, all VLANs are
allowed on the interface. Ranges are specified in the form
x..y, where x<y - ranges are assumed to be inclusive (such
that the VLAN range is x <= range <= y.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=[RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|[1-9])\\.\\.(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|[1-9])'}),]), is_leaf=False, yang_name="trunk-vlans", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='union', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """trunk_vlans must be of a type compatible with union""",
          'defined-type': "openconfig-ap-interfaces:union",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=[RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|[1-9])\\.\\.(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|[1-9])'}),]), is_leaf=False, yang_name="trunk-vlans", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='union', is_config=True)""",
        })

    self.__trunk_vlans = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_trunk_vlans(self):
    self.__trunk_vlans = YANGDynClass(unique=True, base=TypedListType(allowed_type=[RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|[1-9])\\.\\.(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|[1-9])'}),]), is_leaf=False, yang_name="trunk-vlans", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='union', is_config=True)

  interface_mode = __builtin__.property(_get_interface_mode, _set_interface_mode)
  native_vlan = __builtin__.property(_get_native_vlan, _set_native_vlan)
  access_vlan = __builtin__.property(_get_access_vlan, _set_access_vlan)
  trunk_vlans = __builtin__.property(_get_trunk_vlans, _set_trunk_vlans)


  _pyangbind_elements = OrderedDict([('interface_mode', interface_mode), ('native_vlan', native_vlan), ('access_vlan', access_vlan), ('trunk_vlans', trunk_vlans), ])


class yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_aggregation_switched_vlan_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/aggregation/switched-vlan/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: State variables for VLANs
  """
  __slots__ = ('_path_helper', '_extmethods', '__interface_mode','__native_vlan','__access_vlan','__trunk_vlans',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__interface_mode = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'ACCESS': {}, 'TRUNK': {}},), is_leaf=True, yang_name="interface-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-vlan-types:vlan-mode-type', is_config=False)
    self.__native_vlan = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}), is_leaf=True, yang_name="native-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-vlan-types:vlan-id', is_config=False)
    self.__access_vlan = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}), is_leaf=True, yang_name="access-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-vlan-types:vlan-id', is_config=False)
    self.__trunk_vlans = YANGDynClass(unique=True, base=TypedListType(allowed_type=[RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|[1-9])\\.\\.(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|[1-9])'}),]), is_leaf=False, yang_name="trunk-vlans", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='union', 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 ['access-points', 'access-point', 'interfaces', 'interface', 'aggregation', 'switched-vlan', 'state']

  def _get_interface_mode(self):
    """
    Getter method for interface_mode, mapped from YANG variable /access_points/access_point/interfaces/interface/aggregation/switched_vlan/state/interface_mode (oc-vlan-types:vlan-mode-type)

    YANG Description: Set the interface to access or trunk mode for
VLANs
    """
    return self.__interface_mode
      
  def _set_interface_mode(self, v, load=False):
    """
    Setter method for interface_mode, mapped from YANG variable /access_points/access_point/interfaces/interface/aggregation/switched_vlan/state/interface_mode (oc-vlan-types:vlan-mode-type)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_interface_mode is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_interface_mode() directly.

    YANG Description: Set the interface to access or trunk mode for
VLANs
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'ACCESS': {}, 'TRUNK': {}},), is_leaf=True, yang_name="interface-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-vlan-types:vlan-mode-type', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """interface_mode must be of a type compatible with oc-vlan-types:vlan-mode-type""",
          'defined-type': "oc-vlan-types:vlan-mode-type",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'ACCESS': {}, 'TRUNK': {}},), is_leaf=True, yang_name="interface-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-vlan-types:vlan-mode-type', is_config=False)""",
        })

    self.__interface_mode = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_interface_mode(self):
    self.__interface_mode = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'ACCESS': {}, 'TRUNK': {}},), is_leaf=True, yang_name="interface-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-vlan-types:vlan-mode-type', is_config=False)


  def _get_native_vlan(self):
    """
    Getter method for native_vlan, mapped from YANG variable /access_points/access_point/interfaces/interface/aggregation/switched_vlan/state/native_vlan (oc-vlan-types:vlan-id)

    YANG Description: Set the native VLAN id for untagged frames arriving on
a trunk interface.  Tagged frames sent on an interface
configured with a native VLAN should have their tags
stripped prior to transmission. This configuration is only
valid on a trunk interface.
    """
    return self.__native_vlan
      
  def _set_native_vlan(self, v, load=False):
    """
    Setter method for native_vlan, mapped from YANG variable /access_points/access_point/interfaces/interface/aggregation/switched_vlan/state/native_vlan (oc-vlan-types:vlan-id)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_native_vlan is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_native_vlan() directly.

    YANG Description: Set the native VLAN id for untagged frames arriving on
a trunk interface.  Tagged frames sent on an interface
configured with a native VLAN should have their tags
stripped prior to transmission. This configuration is only
valid on a trunk interface.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}), is_leaf=True, yang_name="native-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-vlan-types:vlan-id', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """native_vlan must be of a type compatible with oc-vlan-types:vlan-id""",
          'defined-type': "oc-vlan-types:vlan-id",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}), is_leaf=True, yang_name="native-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-vlan-types:vlan-id', is_config=False)""",
        })

    self.__native_vlan = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_native_vlan(self):
    self.__native_vlan = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}), is_leaf=True, yang_name="native-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-vlan-types:vlan-id', is_config=False)


  def _get_access_vlan(self):
    """
    Getter method for access_vlan, mapped from YANG variable /access_points/access_point/interfaces/interface/aggregation/switched_vlan/state/access_vlan (oc-vlan-types:vlan-id)

    YANG Description: Assign the access vlan to the access port.
    """
    return self.__access_vlan
      
  def _set_access_vlan(self, v, load=False):
    """
    Setter method for access_vlan, mapped from YANG variable /access_points/access_point/interfaces/interface/aggregation/switched_vlan/state/access_vlan (oc-vlan-types:vlan-id)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_access_vlan is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_access_vlan() directly.

    YANG Description: Assign the access vlan to the access port.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}), is_leaf=True, yang_name="access-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-vlan-types:vlan-id', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """access_vlan must be of a type compatible with oc-vlan-types:vlan-id""",
          'defined-type': "oc-vlan-types:vlan-id",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}), is_leaf=True, yang_name="access-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-vlan-types:vlan-id', is_config=False)""",
        })

    self.__access_vlan = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_access_vlan(self):
    self.__access_vlan = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}), is_leaf=True, yang_name="access-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-vlan-types:vlan-id', is_config=False)


  def _get_trunk_vlans(self):
    """
    Getter method for trunk_vlans, mapped from YANG variable /access_points/access_point/interfaces/interface/aggregation/switched_vlan/state/trunk_vlans (union)

    YANG Description: Specify VLANs, or ranges thereof, that the interface may
carry when in trunk mode.  If not specified, all VLANs are
allowed on the interface. Ranges are specified in the form
x..y, where x<y - ranges are assumed to be inclusive (such
that the VLAN range is x <= range <= y.
    """
    return self.__trunk_vlans
      
  def _set_trunk_vlans(self, v, load=False):
    """
    Setter method for trunk_vlans, mapped from YANG variable /access_points/access_point/interfaces/interface/aggregation/switched_vlan/state/trunk_vlans (union)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_trunk_vlans is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_trunk_vlans() directly.

    YANG Description: Specify VLANs, or ranges thereof, that the interface may
carry when in trunk mode.  If not specified, all VLANs are
allowed on the interface. Ranges are specified in the form
x..y, where x<y - ranges are assumed to be inclusive (such
that the VLAN range is x <= range <= y.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=[RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|[1-9])\\.\\.(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|[1-9])'}),]), is_leaf=False, yang_name="trunk-vlans", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='union', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """trunk_vlans must be of a type compatible with union""",
          'defined-type': "openconfig-ap-interfaces:union",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=[RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|[1-9])\\.\\.(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|[1-9])'}),]), is_leaf=False, yang_name="trunk-vlans", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='union', is_config=False)""",
        })

    self.__trunk_vlans = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_trunk_vlans(self):
    self.__trunk_vlans = YANGDynClass(unique=True, base=TypedListType(allowed_type=[RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|[1-9])\\.\\.(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|[1-9])'}),]), is_leaf=False, yang_name="trunk-vlans", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='union', is_config=False)

  interface_mode = __builtin__.property(_get_interface_mode)
  native_vlan = __builtin__.property(_get_native_vlan)
  access_vlan = __builtin__.property(_get_access_vlan)
  trunk_vlans = __builtin__.property(_get_trunk_vlans)


  _pyangbind_elements = OrderedDict([('interface_mode', interface_mode), ('native_vlan', native_vlan), ('access_vlan', access_vlan), ('trunk_vlans', trunk_vlans), ])


class yc_switched_vlan_openconfig_access_points__access_points_access_point_interfaces_interface_aggregation_switched_vlan(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/aggregation/switched-vlan. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Enclosing container for VLAN interface-specific
data on Ethernet interfaces.  These are for standard
L2, switched-style VLANs.
  """
  __slots__ = ('_path_helper', '_extmethods', '__config','__state',)

  _yang_name = 'switched-vlan'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_aggregation_switched_vlan_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_aggregation_switched_vlan_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'aggregation', 'switched-vlan']

  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/aggregation/switched_vlan/config (container)

    YANG Description: Configuration parameters for VLANs
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/aggregation/switched_vlan/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

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

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_aggregation_switched_vlan_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/aggregation/switched_vlan/state (container)

    YANG Description: State variables for VLANs
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/aggregation/switched_vlan/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 variables for VLANs
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_aggregation_switched_vlan_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_aggregation_switched_vlan_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_aggregation_switched_vlan_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)


  _pyangbind_elements = OrderedDict([('config', config), ('state', state), ])


class yc_aggregation_openconfig_access_points__access_points_access_point_interfaces_interface_aggregation(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/aggregation. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Options for logical interfaces representing
aggregates
  """
  __slots__ = ('_path_helper', '_extmethods', '__config','__state','__switched_vlan',)

  _yang_name = 'aggregation'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_aggregation_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_aggregation_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__switched_vlan = YANGDynClass(base=yc_switched_vlan_openconfig_access_points__access_points_access_point_interfaces_interface_aggregation_switched_vlan, is_container='container', yang_name="switched-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'aggregation']

  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/aggregation/config (container)

    YANG Description: Configuration variables for logical aggregate /
LAG interfaces
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/aggregation/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Configuration variables for logical aggregate /
LAG interfaces
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_aggregation_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_aggregation_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_aggregation_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/aggregation/state (container)

    YANG Description: Operational state variables for logical
aggregate / LAG interfaces
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/aggregation/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: Operational state variables for logical
aggregate / LAG interfaces
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_aggregation_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_aggregation_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_aggregation_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_switched_vlan(self):
    """
    Getter method for switched_vlan, mapped from YANG variable /access_points/access_point/interfaces/interface/aggregation/switched_vlan (container)

    YANG Description: Enclosing container for VLAN interface-specific
data on Ethernet interfaces.  These are for standard
L2, switched-style VLANs.
    """
    return self.__switched_vlan
      
  def _set_switched_vlan(self, v, load=False):
    """
    Setter method for switched_vlan, mapped from YANG variable /access_points/access_point/interfaces/interface/aggregation/switched_vlan (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_switched_vlan is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_switched_vlan() directly.

    YANG Description: Enclosing container for VLAN interface-specific
data on Ethernet interfaces.  These are for standard
L2, switched-style VLANs.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_switched_vlan_openconfig_access_points__access_points_access_point_interfaces_interface_aggregation_switched_vlan, is_container='container', yang_name="switched-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """switched_vlan must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_switched_vlan_openconfig_access_points__access_points_access_point_interfaces_interface_aggregation_switched_vlan, is_container='container', yang_name="switched-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

    self.__switched_vlan = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_switched_vlan(self):
    self.__switched_vlan = YANGDynClass(base=yc_switched_vlan_openconfig_access_points__access_points_access_point_interfaces_interface_aggregation_switched_vlan, is_container='container', yang_name="switched-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)
  switched_vlan = __builtin__.property(_get_switched_vlan, _set_switched_vlan)


  _pyangbind_elements = OrderedDict([('config', config), ('state', state), ('switched_vlan', switched_vlan), ])


class yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/tunnel/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Configuration parameters associated with the
tunnel interface
  """
  __slots__ = ('_path_helper', '_extmethods', '__src','__dst','__ttl','__gre_key',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__src = YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),], is_leaf=True, yang_name="src", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ip-address', is_config=True)
    self.__dst = YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),], is_leaf=True, yang_name="dst", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ip-address', is_config=True)
    self.__ttl = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..255']}), is_leaf=True, yang_name="ttl", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint8', is_config=True)
    self.__gre_key = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="gre-key", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'tunnel', 'config']

  def _get_src(self):
    """
    Getter method for src, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/config/src (oc-inet:ip-address)

    YANG Description: The source address that should be used for the
tunnel.
    """
    return self.__src
      
  def _set_src(self, v, load=False):
    """
    Setter method for src, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/config/src (oc-inet:ip-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_src is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_src() directly.

    YANG Description: The source address that should be used for the
tunnel.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),], is_leaf=True, yang_name="src", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ip-address', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """src must be of a type compatible with oc-inet:ip-address""",
          'defined-type': "oc-inet:ip-address",
          'generated-type': """YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),], is_leaf=True, yang_name="src", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ip-address', is_config=True)""",
        })

    self.__src = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_src(self):
    self.__src = YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),], is_leaf=True, yang_name="src", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ip-address', is_config=True)


  def _get_dst(self):
    """
    Getter method for dst, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/config/dst (oc-inet:ip-address)

    YANG Description: The destination address for the tunnel.
    """
    return self.__dst
      
  def _set_dst(self, v, load=False):
    """
    Setter method for dst, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/config/dst (oc-inet:ip-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dst is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dst() directly.

    YANG Description: The destination address for the tunnel.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),], is_leaf=True, yang_name="dst", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ip-address', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dst must be of a type compatible with oc-inet:ip-address""",
          'defined-type': "oc-inet:ip-address",
          'generated-type': """YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),], is_leaf=True, yang_name="dst", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ip-address', is_config=True)""",
        })

    self.__dst = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dst(self):
    self.__dst = YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),], is_leaf=True, yang_name="dst", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ip-address', is_config=True)


  def _get_ttl(self):
    """
    Getter method for ttl, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/config/ttl (uint8)

    YANG Description: The time-to-live (or hop limit) that should be utilised
for the IP packets used for the tunnel transport.
    """
    return self.__ttl
      
  def _set_ttl(self, v, load=False):
    """
    Setter method for ttl, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/config/ttl (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ttl is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ttl() directly.

    YANG Description: The time-to-live (or hop limit) that should be utilised
for the IP packets used for the tunnel transport.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..255']}), is_leaf=True, yang_name="ttl", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint8', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ttl must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..255']}), is_leaf=True, yang_name="ttl", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint8', is_config=True)""",
        })

    self.__ttl = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ttl(self):
    self.__ttl = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..255']}), is_leaf=True, yang_name="ttl", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint8', is_config=True)


  def _get_gre_key(self):
    """
    Getter method for gre_key, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/config/gre_key (uint32)

    YANG Description: The GRE key to be specified for the tunnel. The
key is used to identify a traffic flow within
a tunnel.
    """
    return self.__gre_key
      
  def _set_gre_key(self, v, load=False):
    """
    Setter method for gre_key, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/config/gre_key (uint32)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_gre_key is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_gre_key() directly.

    YANG Description: The GRE key to be specified for the tunnel. The
key is used to identify a traffic flow within
a tunnel.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="gre-key", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """gre_key must be of a type compatible with uint32""",
          'defined-type': "uint32",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="gre-key", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=True)""",
        })

    self.__gre_key = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_gre_key(self):
    self.__gre_key = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="gre-key", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=True)

  src = __builtin__.property(_get_src, _set_src)
  dst = __builtin__.property(_get_dst, _set_dst)
  ttl = __builtin__.property(_get_ttl, _set_ttl)
  gre_key = __builtin__.property(_get_gre_key, _set_gre_key)


  _pyangbind_elements = OrderedDict([('src', src), ('dst', dst), ('ttl', ttl), ('gre_key', gre_key), ])


class yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/tunnel/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Operational state parameters associated with
the tunnel interface.
  """
  __slots__ = ('_path_helper', '_extmethods', '__src','__dst','__ttl','__gre_key',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__src = YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),], is_leaf=True, yang_name="src", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ip-address', is_config=False)
    self.__dst = YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),], is_leaf=True, yang_name="dst", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ip-address', is_config=False)
    self.__ttl = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..255']}), is_leaf=True, yang_name="ttl", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint8', is_config=False)
    self.__gre_key = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="gre-key", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', 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 ['access-points', 'access-point', 'interfaces', 'interface', 'tunnel', 'state']

  def _get_src(self):
    """
    Getter method for src, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/state/src (oc-inet:ip-address)

    YANG Description: The source address that should be used for the
tunnel.
    """
    return self.__src
      
  def _set_src(self, v, load=False):
    """
    Setter method for src, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/state/src (oc-inet:ip-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_src is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_src() directly.

    YANG Description: The source address that should be used for the
tunnel.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),], is_leaf=True, yang_name="src", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ip-address', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """src must be of a type compatible with oc-inet:ip-address""",
          'defined-type': "oc-inet:ip-address",
          'generated-type': """YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),], is_leaf=True, yang_name="src", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ip-address', is_config=False)""",
        })

    self.__src = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_src(self):
    self.__src = YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),], is_leaf=True, yang_name="src", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ip-address', is_config=False)


  def _get_dst(self):
    """
    Getter method for dst, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/state/dst (oc-inet:ip-address)

    YANG Description: The destination address for the tunnel.
    """
    return self.__dst
      
  def _set_dst(self, v, load=False):
    """
    Setter method for dst, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/state/dst (oc-inet:ip-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dst is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dst() directly.

    YANG Description: The destination address for the tunnel.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),], is_leaf=True, yang_name="dst", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ip-address', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dst must be of a type compatible with oc-inet:ip-address""",
          'defined-type': "oc-inet:ip-address",
          'generated-type': """YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),], is_leaf=True, yang_name="dst", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ip-address', is_config=False)""",
        })

    self.__dst = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dst(self):
    self.__dst = YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}),RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}),], is_leaf=True, yang_name="dst", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ip-address', is_config=False)


  def _get_ttl(self):
    """
    Getter method for ttl, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/state/ttl (uint8)

    YANG Description: The time-to-live (or hop limit) that should be utilised
for the IP packets used for the tunnel transport.
    """
    return self.__ttl
      
  def _set_ttl(self, v, load=False):
    """
    Setter method for ttl, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/state/ttl (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ttl is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ttl() directly.

    YANG Description: The time-to-live (or hop limit) that should be utilised
for the IP packets used for the tunnel transport.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..255']}), is_leaf=True, yang_name="ttl", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ttl must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..255']}), is_leaf=True, yang_name="ttl", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint8', is_config=False)""",
        })

    self.__ttl = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ttl(self):
    self.__ttl = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..255']}), is_leaf=True, yang_name="ttl", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint8', is_config=False)


  def _get_gre_key(self):
    """
    Getter method for gre_key, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/state/gre_key (uint32)

    YANG Description: The GRE key to be specified for the tunnel. The
key is used to identify a traffic flow within
a tunnel.
    """
    return self.__gre_key
      
  def _set_gre_key(self, v, load=False):
    """
    Setter method for gre_key, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/state/gre_key (uint32)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_gre_key is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_gre_key() directly.

    YANG Description: The GRE key to be specified for the tunnel. The
key is used to identify a traffic flow within
a tunnel.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="gre-key", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """gre_key must be of a type compatible with uint32""",
          'defined-type': "uint32",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="gre-key", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=False)""",
        })

    self.__gre_key = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_gre_key(self):
    self.__gre_key = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="gre-key", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=False)

  src = __builtin__.property(_get_src)
  dst = __builtin__.property(_get_dst)
  ttl = __builtin__.property(_get_ttl)
  gre_key = __builtin__.property(_get_gre_key)


  _pyangbind_elements = OrderedDict([('src', src), ('dst', dst), ('ttl', ttl), ('gre_key', gre_key), ])


class yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_addresses_address_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/tunnel/ipv4/addresses/address/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Configuration data for each configured IPv4
address on the interface
  """
  __slots__ = ('_path_helper', '_extmethods', '__ip','__prefix_length','__type',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__ip = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}), is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv4-address', is_config=True)
    self.__prefix_length = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..32']}), is_leaf=True, yang_name="prefix-length", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint8', is_config=True)
    self.__type = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'PRIMARY': {}, 'SECONDARY': {}},), default=six.text_type("PRIMARY"), is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='ipv4-address-type', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'tunnel', 'ipv4', 'addresses', 'address', 'config']

  def _get_ip(self):
    """
    Getter method for ip, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/addresses/address/config/ip (oc-inet:ipv4-address)

    YANG Description: The IPv4 address on the interface.
    """
    return self.__ip
      
  def _set_ip(self, v, load=False):
    """
    Setter method for ip, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/addresses/address/config/ip (oc-inet:ipv4-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ip is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ip() directly.

    YANG Description: The IPv4 address on the interface.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}), is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv4-address', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ip must be of a type compatible with oc-inet:ipv4-address""",
          'defined-type': "oc-inet:ipv4-address",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}), is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv4-address', is_config=True)""",
        })

    self.__ip = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ip(self):
    self.__ip = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}), is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv4-address', is_config=True)


  def _get_prefix_length(self):
    """
    Getter method for prefix_length, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/addresses/address/config/prefix_length (uint8)

    YANG Description: The length of the subnet prefix.
    """
    return self.__prefix_length
      
  def _set_prefix_length(self, v, load=False):
    """
    Setter method for prefix_length, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/addresses/address/config/prefix_length (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_prefix_length is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_prefix_length() directly.

    YANG Description: The length of the subnet prefix.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..32']}), is_leaf=True, yang_name="prefix-length", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint8', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """prefix_length must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..32']}), is_leaf=True, yang_name="prefix-length", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint8', is_config=True)""",
        })

    self.__prefix_length = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_prefix_length(self):
    self.__prefix_length = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..32']}), is_leaf=True, yang_name="prefix-length", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint8', is_config=True)


  def _get_type(self):
    """
    Getter method for type, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/addresses/address/config/type (ipv4-address-type)

    YANG Description: Specifies the explicit type of the IPv4 address being assigned
to the interface. By default, addresses are assumed to be a primary address.
Where secondary addresses is to be configured, this leaf should be set
to SECONDARY.
    """
    return self.__type
      
  def _set_type(self, v, load=False):
    """
    Setter method for type, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/addresses/address/config/type (ipv4-address-type)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_type is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_type() directly.

    YANG Description: Specifies the explicit type of the IPv4 address being assigned
to the interface. By default, addresses are assumed to be a primary address.
Where secondary addresses is to be configured, this leaf should be set
to SECONDARY.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'PRIMARY': {}, 'SECONDARY': {}},), default=six.text_type("PRIMARY"), is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='ipv4-address-type', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """type must be of a type compatible with ipv4-address-type""",
          'defined-type': "openconfig-ap-interfaces:ipv4-address-type",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'PRIMARY': {}, 'SECONDARY': {}},), default=six.text_type("PRIMARY"), is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='ipv4-address-type', is_config=True)""",
        })

    self.__type = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_type(self):
    self.__type = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'PRIMARY': {}, 'SECONDARY': {}},), default=six.text_type("PRIMARY"), is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='ipv4-address-type', is_config=True)

  ip = __builtin__.property(_get_ip, _set_ip)
  prefix_length = __builtin__.property(_get_prefix_length, _set_prefix_length)
  type = __builtin__.property(_get_type, _set_type)


  _pyangbind_elements = OrderedDict([('ip', ip), ('prefix_length', prefix_length), ('type', type), ])


class yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_addresses_address_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/tunnel/ipv4/addresses/address/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Operational state data for each IPv4 address
configured on the interface
  """
  __slots__ = ('_path_helper', '_extmethods', '__ip','__prefix_length','__type','__origin',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__ip = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}), is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv4-address', is_config=False)
    self.__prefix_length = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..32']}), is_leaf=True, yang_name="prefix-length", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint8', is_config=False)
    self.__type = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'PRIMARY': {}, 'SECONDARY': {}},), default=six.text_type("PRIMARY"), is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='ipv4-address-type', is_config=False)
    self.__origin = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OTHER': {}, 'STATIC': {}, 'DHCP': {}, 'LINK_LAYER': {}, 'RANDOM': {}},), is_leaf=True, yang_name="origin", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='ip-address-origin', 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 ['access-points', 'access-point', 'interfaces', 'interface', 'tunnel', 'ipv4', 'addresses', 'address', 'state']

  def _get_ip(self):
    """
    Getter method for ip, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/addresses/address/state/ip (oc-inet:ipv4-address)

    YANG Description: The IPv4 address on the interface.
    """
    return self.__ip
      
  def _set_ip(self, v, load=False):
    """
    Setter method for ip, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/addresses/address/state/ip (oc-inet:ipv4-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ip is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ip() directly.

    YANG Description: The IPv4 address on the interface.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}), is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv4-address', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ip must be of a type compatible with oc-inet:ipv4-address""",
          'defined-type': "oc-inet:ipv4-address",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}), is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv4-address', is_config=False)""",
        })

    self.__ip = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ip(self):
    self.__ip = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}), is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv4-address', is_config=False)


  def _get_prefix_length(self):
    """
    Getter method for prefix_length, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/addresses/address/state/prefix_length (uint8)

    YANG Description: The length of the subnet prefix.
    """
    return self.__prefix_length
      
  def _set_prefix_length(self, v, load=False):
    """
    Setter method for prefix_length, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/addresses/address/state/prefix_length (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_prefix_length is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_prefix_length() directly.

    YANG Description: The length of the subnet prefix.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..32']}), is_leaf=True, yang_name="prefix-length", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """prefix_length must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..32']}), is_leaf=True, yang_name="prefix-length", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint8', is_config=False)""",
        })

    self.__prefix_length = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_prefix_length(self):
    self.__prefix_length = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..32']}), is_leaf=True, yang_name="prefix-length", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint8', is_config=False)


  def _get_type(self):
    """
    Getter method for type, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/addresses/address/state/type (ipv4-address-type)

    YANG Description: Specifies the explicit type of the IPv4 address being assigned
to the interface. By default, addresses are assumed to be a primary address.
Where secondary addresses is to be configured, this leaf should be set
to SECONDARY.
    """
    return self.__type
      
  def _set_type(self, v, load=False):
    """
    Setter method for type, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/addresses/address/state/type (ipv4-address-type)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_type is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_type() directly.

    YANG Description: Specifies the explicit type of the IPv4 address being assigned
to the interface. By default, addresses are assumed to be a primary address.
Where secondary addresses is to be configured, this leaf should be set
to SECONDARY.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'PRIMARY': {}, 'SECONDARY': {}},), default=six.text_type("PRIMARY"), is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='ipv4-address-type', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """type must be of a type compatible with ipv4-address-type""",
          'defined-type': "openconfig-ap-interfaces:ipv4-address-type",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'PRIMARY': {}, 'SECONDARY': {}},), default=six.text_type("PRIMARY"), is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='ipv4-address-type', is_config=False)""",
        })

    self.__type = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_type(self):
    self.__type = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'PRIMARY': {}, 'SECONDARY': {}},), default=six.text_type("PRIMARY"), is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='ipv4-address-type', is_config=False)


  def _get_origin(self):
    """
    Getter method for origin, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/addresses/address/state/origin (ip-address-origin)

    YANG Description: The origin of this address, e.g., statically configured,
assigned by DHCP, etc..
    """
    return self.__origin
      
  def _set_origin(self, v, load=False):
    """
    Setter method for origin, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/addresses/address/state/origin (ip-address-origin)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_origin is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_origin() directly.

    YANG Description: The origin of this address, e.g., statically configured,
assigned by DHCP, etc..
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OTHER': {}, 'STATIC': {}, 'DHCP': {}, 'LINK_LAYER': {}, 'RANDOM': {}},), is_leaf=True, yang_name="origin", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='ip-address-origin', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """origin must be of a type compatible with ip-address-origin""",
          'defined-type': "openconfig-ap-interfaces:ip-address-origin",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OTHER': {}, 'STATIC': {}, 'DHCP': {}, 'LINK_LAYER': {}, 'RANDOM': {}},), is_leaf=True, yang_name="origin", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='ip-address-origin', is_config=False)""",
        })

    self.__origin = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_origin(self):
    self.__origin = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OTHER': {}, 'STATIC': {}, 'DHCP': {}, 'LINK_LAYER': {}, 'RANDOM': {}},), is_leaf=True, yang_name="origin", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='ip-address-origin', is_config=False)

  ip = __builtin__.property(_get_ip)
  prefix_length = __builtin__.property(_get_prefix_length)
  type = __builtin__.property(_get_type)
  origin = __builtin__.property(_get_origin)


  _pyangbind_elements = OrderedDict([('ip', ip), ('prefix_length', prefix_length), ('type', type), ('origin', origin), ])


class yc_address_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_addresses_address(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/tunnel/ipv4/addresses/address. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: The list of configured IPv4 addresses on the interface.
  """
  __slots__ = ('_path_helper', '_extmethods', '__ip','__config','__state',)

  _yang_name = 'address'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__ip = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_addresses_address_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_addresses_address_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'tunnel', 'ipv4', 'addresses', 'address']

  def _get_ip(self):
    """
    Getter method for ip, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/addresses/address/ip (leafref)

    YANG Description: References the configured IP address
    """
    return self.__ip
      
  def _set_ip(self, v, load=False):
    """
    Setter method for ip, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/addresses/address/ip (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ip is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ip() directly.

    YANG Description: References the configured IP address
    """
    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="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ip must be of a type compatible with leafref""",
          'defined-type': "leafref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)""",
        })

    self.__ip = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ip(self):
    self.__ip = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)


  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/addresses/address/config (container)

    YANG Description: Configuration data for each configured IPv4
address on the interface
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/addresses/address/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Configuration data for each configured IPv4
address on the interface
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_addresses_address_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_addresses_address_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_addresses_address_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/addresses/address/state (container)

    YANG Description: Operational state data for each IPv4 address
configured on the interface
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/addresses/address/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: Operational state data for each IPv4 address
configured on the interface
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_addresses_address_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_addresses_address_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_addresses_address_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

  ip = __builtin__.property(_get_ip, _set_ip)
  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)


  _pyangbind_elements = OrderedDict([('ip', ip), ('config', config), ('state', state), ])


class yc_addresses_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_addresses(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/tunnel/ipv4/addresses. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Enclosing container for address list
  """
  __slots__ = ('_path_helper', '_extmethods', '__address',)

  _yang_name = 'addresses'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__address = YANGDynClass(base=YANGListType("ip",yc_address_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_addresses_address, yang_name="address", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='ip', extensions=None), is_container='list', yang_name="address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='list', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'tunnel', 'ipv4', 'addresses']

  def _get_address(self):
    """
    Getter method for address, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/addresses/address (list)

    YANG Description: The list of configured IPv4 addresses on the interface.
    """
    return self.__address
      
  def _set_address(self, v, load=False):
    """
    Setter method for address, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/addresses/address (list)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_address is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_address() directly.

    YANG Description: The list of configured IPv4 addresses on the interface.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGListType("ip",yc_address_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_addresses_address, yang_name="address", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='ip', extensions=None), is_container='list', yang_name="address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='list', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """address must be of a type compatible with list""",
          'defined-type': "list",
          'generated-type': """YANGDynClass(base=YANGListType("ip",yc_address_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_addresses_address, yang_name="address", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='ip', extensions=None), is_container='list', yang_name="address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='list', is_config=True)""",
        })

    self.__address = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_address(self):
    self.__address = YANGDynClass(base=YANGListType("ip",yc_address_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_addresses_address, yang_name="address", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='ip', extensions=None), is_container='list', yang_name="address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='list', is_config=True)

  address = __builtin__.property(_get_address, _set_address)


  _pyangbind_elements = OrderedDict([('address', address), ])


class yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_proxy_arp_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/tunnel/ipv4/proxy-arp/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Configuration parameters for proxy ARP
  """
  __slots__ = ('_path_helper', '_extmethods', '__mode',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__mode = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'DISABLE': {}, 'REMOTE_ONLY': {}, 'ALL': {}},), default=six.text_type("DISABLE"), is_leaf=True, yang_name="mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'tunnel', 'ipv4', 'proxy-arp', 'config']

  def _get_mode(self):
    """
    Getter method for mode, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/proxy_arp/config/mode (enumeration)

    YANG Description: When set to a value other than DISABLE, the local system should
respond to ARP requests that are for target addresses other than
those that are configured on the local subinterface using its own
MAC address as the target hardware address. If the REMOTE_ONLY
value is specified, replies are only sent when the target address
falls outside the locally configured subnets on the interface,
whereas with the ALL value, all requests, regardless of their
target address are replied to.
    """
    return self.__mode
      
  def _set_mode(self, v, load=False):
    """
    Setter method for mode, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/proxy_arp/config/mode (enumeration)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mode is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mode() directly.

    YANG Description: When set to a value other than DISABLE, the local system should
respond to ARP requests that are for target addresses other than
those that are configured on the local subinterface using its own
MAC address as the target hardware address. If the REMOTE_ONLY
value is specified, replies are only sent when the target address
falls outside the locally configured subnets on the interface,
whereas with the ALL value, all requests, regardless of their
target address are replied to.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'DISABLE': {}, 'REMOTE_ONLY': {}, 'ALL': {}},), default=six.text_type("DISABLE"), is_leaf=True, yang_name="mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mode must be of a type compatible with enumeration""",
          'defined-type': "openconfig-ap-interfaces:enumeration",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'DISABLE': {}, 'REMOTE_ONLY': {}, 'ALL': {}},), default=six.text_type("DISABLE"), is_leaf=True, yang_name="mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', is_config=True)""",
        })

    self.__mode = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mode(self):
    self.__mode = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'DISABLE': {}, 'REMOTE_ONLY': {}, 'ALL': {}},), default=six.text_type("DISABLE"), is_leaf=True, yang_name="mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', is_config=True)

  mode = __builtin__.property(_get_mode, _set_mode)


  _pyangbind_elements = OrderedDict([('mode', mode), ])


class yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_proxy_arp_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/tunnel/ipv4/proxy-arp/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Operational state parameters for proxy ARP
  """
  __slots__ = ('_path_helper', '_extmethods', '__mode',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__mode = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'DISABLE': {}, 'REMOTE_ONLY': {}, 'ALL': {}},), default=six.text_type("DISABLE"), is_leaf=True, yang_name="mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', 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 ['access-points', 'access-point', 'interfaces', 'interface', 'tunnel', 'ipv4', 'proxy-arp', 'state']

  def _get_mode(self):
    """
    Getter method for mode, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/proxy_arp/state/mode (enumeration)

    YANG Description: When set to a value other than DISABLE, the local system should
respond to ARP requests that are for target addresses other than
those that are configured on the local subinterface using its own
MAC address as the target hardware address. If the REMOTE_ONLY
value is specified, replies are only sent when the target address
falls outside the locally configured subnets on the interface,
whereas with the ALL value, all requests, regardless of their
target address are replied to.
    """
    return self.__mode
      
  def _set_mode(self, v, load=False):
    """
    Setter method for mode, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/proxy_arp/state/mode (enumeration)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mode is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mode() directly.

    YANG Description: When set to a value other than DISABLE, the local system should
respond to ARP requests that are for target addresses other than
those that are configured on the local subinterface using its own
MAC address as the target hardware address. If the REMOTE_ONLY
value is specified, replies are only sent when the target address
falls outside the locally configured subnets on the interface,
whereas with the ALL value, all requests, regardless of their
target address are replied to.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'DISABLE': {}, 'REMOTE_ONLY': {}, 'ALL': {}},), default=six.text_type("DISABLE"), is_leaf=True, yang_name="mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mode must be of a type compatible with enumeration""",
          'defined-type': "openconfig-ap-interfaces:enumeration",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'DISABLE': {}, 'REMOTE_ONLY': {}, 'ALL': {}},), default=six.text_type("DISABLE"), is_leaf=True, yang_name="mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', is_config=False)""",
        })

    self.__mode = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mode(self):
    self.__mode = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'DISABLE': {}, 'REMOTE_ONLY': {}, 'ALL': {}},), default=six.text_type("DISABLE"), is_leaf=True, yang_name="mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', is_config=False)

  mode = __builtin__.property(_get_mode)


  _pyangbind_elements = OrderedDict([('mode', mode), ])


class yc_proxy_arp_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_proxy_arp(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/tunnel/ipv4/proxy-arp. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Configuration and operational state parameters
relating to proxy ARP. This functionality allows a
system to respond to ARP requests that are not
explicitly destined to the local system.
  """
  __slots__ = ('_path_helper', '_extmethods', '__config','__state',)

  _yang_name = 'proxy-arp'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_proxy_arp_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_proxy_arp_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'tunnel', 'ipv4', 'proxy-arp']

  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/proxy_arp/config (container)

    YANG Description: Configuration parameters for proxy ARP
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/proxy_arp/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Configuration parameters for proxy ARP
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_proxy_arp_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_proxy_arp_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_proxy_arp_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/proxy_arp/state (container)

    YANG Description: Operational state parameters for proxy ARP
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/proxy_arp/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: Operational state parameters for proxy ARP
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_proxy_arp_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_proxy_arp_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_proxy_arp_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)


  _pyangbind_elements = OrderedDict([('config', config), ('state', state), ])


class yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_neighbors_neighbor_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/tunnel/ipv4/neighbors/neighbor/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Configuration data for each configured IPv4
address on the interface
  """
  __slots__ = ('_path_helper', '_extmethods', '__ip','__link_layer_address',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__ip = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}), is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv4-address', is_config=True)
    self.__link_layer_address = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'}), is_leaf=True, yang_name="link-layer-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:phys-address', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'tunnel', 'ipv4', 'neighbors', 'neighbor', 'config']

  def _get_ip(self):
    """
    Getter method for ip, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/neighbors/neighbor/config/ip (oc-inet:ipv4-address)

    YANG Description: The IPv4 address of the neighbor node.
    """
    return self.__ip
      
  def _set_ip(self, v, load=False):
    """
    Setter method for ip, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/neighbors/neighbor/config/ip (oc-inet:ipv4-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ip is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ip() directly.

    YANG Description: The IPv4 address of the neighbor node.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}), is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv4-address', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ip must be of a type compatible with oc-inet:ipv4-address""",
          'defined-type': "oc-inet:ipv4-address",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}), is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv4-address', is_config=True)""",
        })

    self.__ip = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ip(self):
    self.__ip = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}), is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv4-address', is_config=True)


  def _get_link_layer_address(self):
    """
    Getter method for link_layer_address, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/neighbors/neighbor/config/link_layer_address (oc-yang:phys-address)

    YANG Description: The link-layer address of the neighbor node.
    """
    return self.__link_layer_address
      
  def _set_link_layer_address(self, v, load=False):
    """
    Setter method for link_layer_address, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/neighbors/neighbor/config/link_layer_address (oc-yang:phys-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_link_layer_address is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_link_layer_address() directly.

    YANG Description: The link-layer address of the neighbor node.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'}), is_leaf=True, yang_name="link-layer-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:phys-address', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """link_layer_address must be of a type compatible with oc-yang:phys-address""",
          'defined-type': "oc-yang:phys-address",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'}), is_leaf=True, yang_name="link-layer-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:phys-address', is_config=True)""",
        })

    self.__link_layer_address = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_link_layer_address(self):
    self.__link_layer_address = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'}), is_leaf=True, yang_name="link-layer-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:phys-address', is_config=True)

  ip = __builtin__.property(_get_ip, _set_ip)
  link_layer_address = __builtin__.property(_get_link_layer_address, _set_link_layer_address)


  _pyangbind_elements = OrderedDict([('ip', ip), ('link_layer_address', link_layer_address), ])


class yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_neighbors_neighbor_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/tunnel/ipv4/neighbors/neighbor/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Operational state data for each IPv4 address
configured on the interface
  """
  __slots__ = ('_path_helper', '_extmethods', '__ip','__link_layer_address','__origin',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__ip = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}), is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv4-address', is_config=False)
    self.__link_layer_address = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'}), is_leaf=True, yang_name="link-layer-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:phys-address', is_config=False)
    self.__origin = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OTHER': {}, 'STATIC': {}, 'DYNAMIC': {}},), is_leaf=True, yang_name="origin", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='neighbor-origin', 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 ['access-points', 'access-point', 'interfaces', 'interface', 'tunnel', 'ipv4', 'neighbors', 'neighbor', 'state']

  def _get_ip(self):
    """
    Getter method for ip, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/neighbors/neighbor/state/ip (oc-inet:ipv4-address)

    YANG Description: The IPv4 address of the neighbor node.
    """
    return self.__ip
      
  def _set_ip(self, v, load=False):
    """
    Setter method for ip, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/neighbors/neighbor/state/ip (oc-inet:ipv4-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ip is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ip() directly.

    YANG Description: The IPv4 address of the neighbor node.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}), is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv4-address', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ip must be of a type compatible with oc-inet:ipv4-address""",
          'defined-type': "oc-inet:ipv4-address",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}), is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv4-address', is_config=False)""",
        })

    self.__ip = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ip(self):
    self.__ip = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'}), is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv4-address', is_config=False)


  def _get_link_layer_address(self):
    """
    Getter method for link_layer_address, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/neighbors/neighbor/state/link_layer_address (oc-yang:phys-address)

    YANG Description: The link-layer address of the neighbor node.
    """
    return self.__link_layer_address
      
  def _set_link_layer_address(self, v, load=False):
    """
    Setter method for link_layer_address, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/neighbors/neighbor/state/link_layer_address (oc-yang:phys-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_link_layer_address is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_link_layer_address() directly.

    YANG Description: The link-layer address of the neighbor node.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'}), is_leaf=True, yang_name="link-layer-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:phys-address', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """link_layer_address must be of a type compatible with oc-yang:phys-address""",
          'defined-type': "oc-yang:phys-address",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'}), is_leaf=True, yang_name="link-layer-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:phys-address', is_config=False)""",
        })

    self.__link_layer_address = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_link_layer_address(self):
    self.__link_layer_address = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'}), is_leaf=True, yang_name="link-layer-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:phys-address', is_config=False)


  def _get_origin(self):
    """
    Getter method for origin, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/neighbors/neighbor/state/origin (neighbor-origin)

    YANG Description: The origin of this neighbor entry, static or dynamic.
    """
    return self.__origin
      
  def _set_origin(self, v, load=False):
    """
    Setter method for origin, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/neighbors/neighbor/state/origin (neighbor-origin)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_origin is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_origin() directly.

    YANG Description: The origin of this neighbor entry, static or dynamic.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OTHER': {}, 'STATIC': {}, 'DYNAMIC': {}},), is_leaf=True, yang_name="origin", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='neighbor-origin', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """origin must be of a type compatible with neighbor-origin""",
          'defined-type': "openconfig-ap-interfaces:neighbor-origin",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OTHER': {}, 'STATIC': {}, 'DYNAMIC': {}},), is_leaf=True, yang_name="origin", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='neighbor-origin', is_config=False)""",
        })

    self.__origin = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_origin(self):
    self.__origin = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OTHER': {}, 'STATIC': {}, 'DYNAMIC': {}},), is_leaf=True, yang_name="origin", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='neighbor-origin', is_config=False)

  ip = __builtin__.property(_get_ip)
  link_layer_address = __builtin__.property(_get_link_layer_address)
  origin = __builtin__.property(_get_origin)


  _pyangbind_elements = OrderedDict([('ip', ip), ('link_layer_address', link_layer_address), ('origin', origin), ])


class yc_neighbor_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_neighbors_neighbor(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/tunnel/ipv4/neighbors/neighbor. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: A list of mappings from IPv4 addresses to
link-layer addresses.

Entries in this list are used as static entries in the
ARP Cache.
  """
  __slots__ = ('_path_helper', '_extmethods', '__ip','__config','__state',)

  _yang_name = 'neighbor'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__ip = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_neighbors_neighbor_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_neighbors_neighbor_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'tunnel', 'ipv4', 'neighbors', 'neighbor']

  def _get_ip(self):
    """
    Getter method for ip, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/neighbors/neighbor/ip (leafref)

    YANG Description: References the configured IP address
    """
    return self.__ip
      
  def _set_ip(self, v, load=False):
    """
    Setter method for ip, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/neighbors/neighbor/ip (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ip is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ip() directly.

    YANG Description: References the configured IP address
    """
    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="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ip must be of a type compatible with leafref""",
          'defined-type': "leafref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)""",
        })

    self.__ip = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ip(self):
    self.__ip = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)


  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/neighbors/neighbor/config (container)

    YANG Description: Configuration data for each configured IPv4
address on the interface
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/neighbors/neighbor/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Configuration data for each configured IPv4
address on the interface
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_neighbors_neighbor_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_neighbors_neighbor_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_neighbors_neighbor_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/neighbors/neighbor/state (container)

    YANG Description: Operational state data for each IPv4 address
configured on the interface
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/neighbors/neighbor/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: Operational state data for each IPv4 address
configured on the interface
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_neighbors_neighbor_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_neighbors_neighbor_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_neighbors_neighbor_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

  ip = __builtin__.property(_get_ip, _set_ip)
  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)


  _pyangbind_elements = OrderedDict([('ip', ip), ('config', config), ('state', state), ])


class yc_neighbors_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_neighbors(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/tunnel/ipv4/neighbors. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Enclosing container for neighbor list
  """
  __slots__ = ('_path_helper', '_extmethods', '__neighbor',)

  _yang_name = 'neighbors'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__neighbor = YANGDynClass(base=YANGListType("ip",yc_neighbor_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_neighbors_neighbor, yang_name="neighbor", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='ip', extensions=None), is_container='list', yang_name="neighbor", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='list', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'tunnel', 'ipv4', 'neighbors']

  def _get_neighbor(self):
    """
    Getter method for neighbor, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/neighbors/neighbor (list)

    YANG Description: A list of mappings from IPv4 addresses to
link-layer addresses.

Entries in this list are used as static entries in the
ARP Cache.
    """
    return self.__neighbor
      
  def _set_neighbor(self, v, load=False):
    """
    Setter method for neighbor, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/neighbors/neighbor (list)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_neighbor is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_neighbor() directly.

    YANG Description: A list of mappings from IPv4 addresses to
link-layer addresses.

Entries in this list are used as static entries in the
ARP Cache.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGListType("ip",yc_neighbor_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_neighbors_neighbor, yang_name="neighbor", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='ip', extensions=None), is_container='list', yang_name="neighbor", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='list', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """neighbor must be of a type compatible with list""",
          'defined-type': "list",
          'generated-type': """YANGDynClass(base=YANGListType("ip",yc_neighbor_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_neighbors_neighbor, yang_name="neighbor", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='ip', extensions=None), is_container='list', yang_name="neighbor", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='list', is_config=True)""",
        })

    self.__neighbor = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_neighbor(self):
    self.__neighbor = YANGDynClass(base=YANGListType("ip",yc_neighbor_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_neighbors_neighbor, yang_name="neighbor", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='ip', extensions=None), is_container='list', yang_name="neighbor", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='list', is_config=True)

  neighbor = __builtin__.property(_get_neighbor, _set_neighbor)


  _pyangbind_elements = OrderedDict([('neighbor', neighbor), ])


class yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_unnumbered_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/tunnel/ipv4/unnumbered/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Configuration data for unnumbered interface
  """
  __slots__ = ('_path_helper', '_extmethods', '__enabled',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'tunnel', 'ipv4', 'unnumbered', 'config']

  def _get_enabled(self):
    """
    Getter method for enabled, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/unnumbered/config/enabled (boolean)

    YANG Description: Indicates that the subinterface is unnumbered.  By default
the subinterface is numbered, i.e., expected to have an
IP address configuration.
    """
    return self.__enabled
      
  def _set_enabled(self, v, load=False):
    """
    Setter method for enabled, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/unnumbered/config/enabled (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_enabled is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_enabled() directly.

    YANG Description: Indicates that the subinterface is unnumbered.  By default
the subinterface is numbered, i.e., expected to have an
IP address configuration.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """enabled must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)""",
        })

    self.__enabled = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_enabled(self):
    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)

  enabled = __builtin__.property(_get_enabled, _set_enabled)


  _pyangbind_elements = OrderedDict([('enabled', enabled), ])


class yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_unnumbered_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/tunnel/ipv4/unnumbered/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Operational state data for unnumbered interfaces
  """
  __slots__ = ('_path_helper', '_extmethods', '__enabled',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', 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 ['access-points', 'access-point', 'interfaces', 'interface', 'tunnel', 'ipv4', 'unnumbered', 'state']

  def _get_enabled(self):
    """
    Getter method for enabled, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/unnumbered/state/enabled (boolean)

    YANG Description: Indicates that the subinterface is unnumbered.  By default
the subinterface is numbered, i.e., expected to have an
IP address configuration.
    """
    return self.__enabled
      
  def _set_enabled(self, v, load=False):
    """
    Setter method for enabled, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/unnumbered/state/enabled (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_enabled is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_enabled() directly.

    YANG Description: Indicates that the subinterface is unnumbered.  By default
the subinterface is numbered, i.e., expected to have an
IP address configuration.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """enabled must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)""",
        })

    self.__enabled = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_enabled(self):
    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)

  enabled = __builtin__.property(_get_enabled)


  _pyangbind_elements = OrderedDict([('enabled', enabled), ])


class yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_unnumbered_interface_ref_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/tunnel/ipv4/unnumbered/interface-ref/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Configured reference to interface / subinterface
  """
  __slots__ = ('_path_helper', '_extmethods', '__interface','__subinterface',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__interface = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="interface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)
    self.__subinterface = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="subinterface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'tunnel', 'ipv4', 'unnumbered', 'interface-ref', 'config']

  def _get_interface(self):
    """
    Getter method for interface, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/unnumbered/interface_ref/config/interface (leafref)

    YANG Description: Reference to a base interface.  If a reference to a
subinterface is required, this leaf must be specified
to indicate the base interface.
    """
    return self.__interface
      
  def _set_interface(self, v, load=False):
    """
    Setter method for interface, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/unnumbered/interface_ref/config/interface (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_interface is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_interface() directly.

    YANG Description: Reference to a base interface.  If a reference to a
subinterface is required, this leaf must be specified
to indicate the base interface.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="interface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """interface must be of a type compatible with leafref""",
          'defined-type': "leafref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="interface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)""",
        })

    self.__interface = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_interface(self):
    self.__interface = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="interface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)


  def _get_subinterface(self):
    """
    Getter method for subinterface, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/unnumbered/interface_ref/config/subinterface (leafref)

    YANG Description: Reference to a subinterface -- this requires the base
interface to be specified using the interface leaf in
this container.  If only a reference to a base interface
is requuired, this leaf should not be set.
    """
    return self.__subinterface
      
  def _set_subinterface(self, v, load=False):
    """
    Setter method for subinterface, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/unnumbered/interface_ref/config/subinterface (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_subinterface is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_subinterface() directly.

    YANG Description: Reference to a subinterface -- this requires the base
interface to be specified using the interface leaf in
this container.  If only a reference to a base interface
is requuired, this leaf should not be set.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="subinterface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """subinterface must be of a type compatible with leafref""",
          'defined-type': "leafref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="subinterface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)""",
        })

    self.__subinterface = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_subinterface(self):
    self.__subinterface = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="subinterface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)

  interface = __builtin__.property(_get_interface, _set_interface)
  subinterface = __builtin__.property(_get_subinterface, _set_subinterface)


  _pyangbind_elements = OrderedDict([('interface', interface), ('subinterface', subinterface), ])


class yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_unnumbered_interface_ref_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/tunnel/ipv4/unnumbered/interface-ref/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Operational state for interface-ref
  """
  __slots__ = ('_path_helper', '_extmethods', '__interface','__subinterface',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__interface = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="interface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=False)
    self.__subinterface = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="subinterface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', 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 ['access-points', 'access-point', 'interfaces', 'interface', 'tunnel', 'ipv4', 'unnumbered', 'interface-ref', 'state']

  def _get_interface(self):
    """
    Getter method for interface, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/unnumbered/interface_ref/state/interface (leafref)

    YANG Description: Reference to a base interface.  If a reference to a
subinterface is required, this leaf must be specified
to indicate the base interface.
    """
    return self.__interface
      
  def _set_interface(self, v, load=False):
    """
    Setter method for interface, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/unnumbered/interface_ref/state/interface (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_interface is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_interface() directly.

    YANG Description: Reference to a base interface.  If a reference to a
subinterface is required, this leaf must be specified
to indicate the base interface.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="interface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """interface must be of a type compatible with leafref""",
          'defined-type': "leafref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="interface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=False)""",
        })

    self.__interface = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_interface(self):
    self.__interface = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="interface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=False)


  def _get_subinterface(self):
    """
    Getter method for subinterface, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/unnumbered/interface_ref/state/subinterface (leafref)

    YANG Description: Reference to a subinterface -- this requires the base
interface to be specified using the interface leaf in
this container.  If only a reference to a base interface
is requuired, this leaf should not be set.
    """
    return self.__subinterface
      
  def _set_subinterface(self, v, load=False):
    """
    Setter method for subinterface, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/unnumbered/interface_ref/state/subinterface (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_subinterface is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_subinterface() directly.

    YANG Description: Reference to a subinterface -- this requires the base
interface to be specified using the interface leaf in
this container.  If only a reference to a base interface
is requuired, this leaf should not be set.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="subinterface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """subinterface must be of a type compatible with leafref""",
          'defined-type': "leafref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="subinterface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=False)""",
        })

    self.__subinterface = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_subinterface(self):
    self.__subinterface = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="subinterface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=False)

  interface = __builtin__.property(_get_interface)
  subinterface = __builtin__.property(_get_subinterface)


  _pyangbind_elements = OrderedDict([('interface', interface), ('subinterface', subinterface), ])


class yc_interface_ref_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_unnumbered_interface_ref(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/tunnel/ipv4/unnumbered/interface-ref. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Reference to an interface or subinterface. The interface
that is being referenced is uniquely referenced based on
the specified interface and subinterface leaves. In contexts
where a Layer 3 interface is to be referenced, both the
interface and subinterface leaves must be populated, as
Layer 3 configuration within the OpenConfig models is
associated with a subinterface. In the case where a
Layer 2 interface is to be referenced, only the
interface is specified.

The interface/subinterface leaf tuple must be used as
the means by which the interface is specified, regardless
of any other context information (e.g., key in a list).
  """
  __slots__ = ('_path_helper', '_extmethods', '__config','__state',)

  _yang_name = 'interface-ref'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_unnumbered_interface_ref_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_unnumbered_interface_ref_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'tunnel', 'ipv4', 'unnumbered', 'interface-ref']

  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/unnumbered/interface_ref/config (container)

    YANG Description: Configured reference to interface / subinterface
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/unnumbered/interface_ref/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Configured reference to interface / subinterface
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_unnumbered_interface_ref_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_unnumbered_interface_ref_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_unnumbered_interface_ref_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/unnumbered/interface_ref/state (container)

    YANG Description: Operational state for interface-ref
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/unnumbered/interface_ref/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: Operational state for interface-ref
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_unnumbered_interface_ref_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_unnumbered_interface_ref_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_unnumbered_interface_ref_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)


  _pyangbind_elements = OrderedDict([('config', config), ('state', state), ])


class yc_unnumbered_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_unnumbered(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/tunnel/ipv4/unnumbered. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Top-level container for setting unnumbered interfaces.
Includes reference the interface that provides the
address information
  """
  __slots__ = ('_path_helper', '_extmethods', '__config','__state','__interface_ref',)

  _yang_name = 'unnumbered'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_unnumbered_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_unnumbered_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__interface_ref = YANGDynClass(base=yc_interface_ref_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_unnumbered_interface_ref, is_container='container', yang_name="interface-ref", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'tunnel', 'ipv4', 'unnumbered']

  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/unnumbered/config (container)

    YANG Description: Configuration data for unnumbered interface
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/unnumbered/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Configuration data for unnumbered interface
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_unnumbered_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_unnumbered_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_unnumbered_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/unnumbered/state (container)

    YANG Description: Operational state data for unnumbered interfaces
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/unnumbered/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: Operational state data for unnumbered interfaces
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_unnumbered_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_unnumbered_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_unnumbered_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_interface_ref(self):
    """
    Getter method for interface_ref, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/unnumbered/interface_ref (container)

    YANG Description: Reference to an interface or subinterface. The interface
that is being referenced is uniquely referenced based on
the specified interface and subinterface leaves. In contexts
where a Layer 3 interface is to be referenced, both the
interface and subinterface leaves must be populated, as
Layer 3 configuration within the OpenConfig models is
associated with a subinterface. In the case where a
Layer 2 interface is to be referenced, only the
interface is specified.

The interface/subinterface leaf tuple must be used as
the means by which the interface is specified, regardless
of any other context information (e.g., key in a list).
    """
    return self.__interface_ref
      
  def _set_interface_ref(self, v, load=False):
    """
    Setter method for interface_ref, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/unnumbered/interface_ref (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_interface_ref is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_interface_ref() directly.

    YANG Description: Reference to an interface or subinterface. The interface
that is being referenced is uniquely referenced based on
the specified interface and subinterface leaves. In contexts
where a Layer 3 interface is to be referenced, both the
interface and subinterface leaves must be populated, as
Layer 3 configuration within the OpenConfig models is
associated with a subinterface. In the case where a
Layer 2 interface is to be referenced, only the
interface is specified.

The interface/subinterface leaf tuple must be used as
the means by which the interface is specified, regardless
of any other context information (e.g., key in a list).
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_interface_ref_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_unnumbered_interface_ref, is_container='container', yang_name="interface-ref", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """interface_ref must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_interface_ref_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_unnumbered_interface_ref, is_container='container', yang_name="interface-ref", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

    self.__interface_ref = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_interface_ref(self):
    self.__interface_ref = YANGDynClass(base=yc_interface_ref_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_unnumbered_interface_ref, is_container='container', yang_name="interface-ref", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)
  interface_ref = __builtin__.property(_get_interface_ref, _set_interface_ref)


  _pyangbind_elements = OrderedDict([('config', config), ('state', state), ('interface_ref', interface_ref), ])


class yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/tunnel/ipv4/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Top-level IPv4 configuration data for the interface
  """
  __slots__ = ('_path_helper', '_extmethods', '__enabled','__mtu','__dhcp_client',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)
    self.__mtu = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['68..max']}), is_leaf=True, yang_name="mtu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint16', is_config=True)
    self.__dhcp_client = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="dhcp-client", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'tunnel', 'ipv4', 'config']

  def _get_enabled(self):
    """
    Getter method for enabled, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/config/enabled (boolean)

    YANG Description: Controls whether IPv4 is enabled or disabled on this
interface.  When IPv4 is enabled, this interface is
connected to an IPv4 stack, and the interface can send
and receive IPv4 packets.
    """
    return self.__enabled
      
  def _set_enabled(self, v, load=False):
    """
    Setter method for enabled, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/config/enabled (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_enabled is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_enabled() directly.

    YANG Description: Controls whether IPv4 is enabled or disabled on this
interface.  When IPv4 is enabled, this interface is
connected to an IPv4 stack, and the interface can send
and receive IPv4 packets.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """enabled must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)""",
        })

    self.__enabled = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_enabled(self):
    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)


  def _get_mtu(self):
    """
    Getter method for mtu, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/config/mtu (uint16)

    YANG Description: The size, in octets, of the largest IPv4 packet that the
interface will send and receive.

The server may restrict the allowed values for this leaf,
depending on the interface's type.

If this leaf is not configured, the operationally used MTU
depends on the interface's type.
    """
    return self.__mtu
      
  def _set_mtu(self, v, load=False):
    """
    Setter method for mtu, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/config/mtu (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mtu is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mtu() directly.

    YANG Description: The size, in octets, of the largest IPv4 packet that the
interface will send and receive.

The server may restrict the allowed values for this leaf,
depending on the interface's type.

If this leaf is not configured, the operationally used MTU
depends on the interface's type.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['68..max']}), is_leaf=True, yang_name="mtu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint16', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mtu must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['68..max']}), is_leaf=True, yang_name="mtu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint16', is_config=True)""",
        })

    self.__mtu = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mtu(self):
    self.__mtu = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['68..max']}), is_leaf=True, yang_name="mtu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint16', is_config=True)


  def _get_dhcp_client(self):
    """
    Getter method for dhcp_client, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/config/dhcp_client (boolean)

    YANG Description: Enables a DHCP client on the interface in order to request
an address
    """
    return self.__dhcp_client
      
  def _set_dhcp_client(self, v, load=False):
    """
    Setter method for dhcp_client, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/config/dhcp_client (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dhcp_client is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dhcp_client() directly.

    YANG Description: Enables a DHCP client on the interface in order to request
an address
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="dhcp-client", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dhcp_client must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="dhcp-client", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)""",
        })

    self.__dhcp_client = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dhcp_client(self):
    self.__dhcp_client = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="dhcp-client", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)

  enabled = __builtin__.property(_get_enabled, _set_enabled)
  mtu = __builtin__.property(_get_mtu, _set_mtu)
  dhcp_client = __builtin__.property(_get_dhcp_client, _set_dhcp_client)


  _pyangbind_elements = OrderedDict([('enabled', enabled), ('mtu', mtu), ('dhcp_client', dhcp_client), ])


class yc_counters_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_state_counters(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/tunnel/ipv4/state/counters. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Packet and byte counters for IP transmission and
reception for the address family.
  """
  __slots__ = ('_path_helper', '_extmethods', '__in_pkts','__in_octets','__in_error_pkts','__in_forwarded_pkts','__in_forwarded_octets','__in_discarded_pkts','__out_pkts','__out_octets','__out_error_pkts','__out_forwarded_pkts','__out_forwarded_octets','__out_discarded_pkts',)

  _yang_name = 'counters'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__in_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__in_octets = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__in_error_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-error-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__in_forwarded_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-forwarded-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__in_forwarded_octets = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-forwarded-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__in_discarded_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-discarded-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__out_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__out_octets = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__out_error_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-error-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__out_forwarded_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-forwarded-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__out_forwarded_octets = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-forwarded-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__out_discarded_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-discarded-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', 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 ['access-points', 'access-point', 'interfaces', 'interface', 'tunnel', 'ipv4', 'state', 'counters']

  def _get_in_pkts(self):
    """
    Getter method for in_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/state/counters/in_pkts (oc-yang:counter64)

    YANG Description: The total number of IP packets received for the specified
address family, including those received in error
    """
    return self.__in_pkts
      
  def _set_in_pkts(self, v, load=False):
    """
    Setter method for in_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/state/counters/in_pkts (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_in_pkts is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_in_pkts() directly.

    YANG Description: The total number of IP packets received for the specified
address family, including those received in error
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """in_pkts must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__in_pkts = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_in_pkts(self):
    self.__in_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_in_octets(self):
    """
    Getter method for in_octets, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/state/counters/in_octets (oc-yang:counter64)

    YANG Description: The total number of octets received in input IP packets
for the specified address family, including those received
in error.
    """
    return self.__in_octets
      
  def _set_in_octets(self, v, load=False):
    """
    Setter method for in_octets, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/state/counters/in_octets (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_in_octets is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_in_octets() directly.

    YANG Description: The total number of octets received in input IP packets
for the specified address family, including those received
in error.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """in_octets must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__in_octets = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_in_octets(self):
    self.__in_octets = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_in_error_pkts(self):
    """
    Getter method for in_error_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/state/counters/in_error_pkts (oc-yang:counter64)

    YANG Description: Number of IP packets discarded due to errors for the
specified address family, including errors in the IP
header, no route found to the IP destination, invalid
address, unknown protocol, etc.
    """
    return self.__in_error_pkts
      
  def _set_in_error_pkts(self, v, load=False):
    """
    Setter method for in_error_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/state/counters/in_error_pkts (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_in_error_pkts is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_in_error_pkts() directly.

    YANG Description: Number of IP packets discarded due to errors for the
specified address family, including errors in the IP
header, no route found to the IP destination, invalid
address, unknown protocol, etc.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-error-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """in_error_pkts must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-error-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__in_error_pkts = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_in_error_pkts(self):
    self.__in_error_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-error-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_in_forwarded_pkts(self):
    """
    Getter method for in_forwarded_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/state/counters/in_forwarded_pkts (oc-yang:counter64)

    YANG Description: The number of input packets for which the device was not
their final IP destination and for which the device
attempted to find a route to forward them to that final
destination.
    """
    return self.__in_forwarded_pkts
      
  def _set_in_forwarded_pkts(self, v, load=False):
    """
    Setter method for in_forwarded_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/state/counters/in_forwarded_pkts (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_in_forwarded_pkts is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_in_forwarded_pkts() directly.

    YANG Description: The number of input packets for which the device was not
their final IP destination and for which the device
attempted to find a route to forward them to that final
destination.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-forwarded-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """in_forwarded_pkts must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-forwarded-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__in_forwarded_pkts = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_in_forwarded_pkts(self):
    self.__in_forwarded_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-forwarded-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_in_forwarded_octets(self):
    """
    Getter method for in_forwarded_octets, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/state/counters/in_forwarded_octets (oc-yang:counter64)

    YANG Description: The number of octets received in input IP packets
for the specified address family for which the device was
not their final IP destination and for which the
device attempted to find a route to forward them to that
final destination.
    """
    return self.__in_forwarded_octets
      
  def _set_in_forwarded_octets(self, v, load=False):
    """
    Setter method for in_forwarded_octets, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/state/counters/in_forwarded_octets (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_in_forwarded_octets is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_in_forwarded_octets() directly.

    YANG Description: The number of octets received in input IP packets
for the specified address family for which the device was
not their final IP destination and for which the
device attempted to find a route to forward them to that
final destination.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-forwarded-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """in_forwarded_octets must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-forwarded-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__in_forwarded_octets = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_in_forwarded_octets(self):
    self.__in_forwarded_octets = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-forwarded-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_in_discarded_pkts(self):
    """
    Getter method for in_discarded_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/state/counters/in_discarded_pkts (oc-yang:counter64)

    YANG Description: The number of input IP packets for the
specified address family, for which no problems were
encountered to prevent their continued processing, but
were discarded (e.g., for lack of buffer space).
    """
    return self.__in_discarded_pkts
      
  def _set_in_discarded_pkts(self, v, load=False):
    """
    Setter method for in_discarded_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/state/counters/in_discarded_pkts (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_in_discarded_pkts is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_in_discarded_pkts() directly.

    YANG Description: The number of input IP packets for the
specified address family, for which no problems were
encountered to prevent their continued processing, but
were discarded (e.g., for lack of buffer space).
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-discarded-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """in_discarded_pkts must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-discarded-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__in_discarded_pkts = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_in_discarded_pkts(self):
    self.__in_discarded_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-discarded-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_out_pkts(self):
    """
    Getter method for out_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/state/counters/out_pkts (oc-yang:counter64)

    YANG Description: The total number of IP packets for the
specified address family that the device supplied
to the lower layers for transmission.  This includes
packets generated locally and those forwarded by the
device.
    """
    return self.__out_pkts
      
  def _set_out_pkts(self, v, load=False):
    """
    Setter method for out_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/state/counters/out_pkts (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_out_pkts is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_out_pkts() directly.

    YANG Description: The total number of IP packets for the
specified address family that the device supplied
to the lower layers for transmission.  This includes
packets generated locally and those forwarded by the
device.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """out_pkts must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__out_pkts = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_out_pkts(self):
    self.__out_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_out_octets(self):
    """
    Getter method for out_octets, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/state/counters/out_octets (oc-yang:counter64)

    YANG Description: The total number of octets in IP packets for the
specified address family that the device
supplied to the lower layers for transmission.  This
includes packets generated locally and those forwarded by
the device.
    """
    return self.__out_octets
      
  def _set_out_octets(self, v, load=False):
    """
    Setter method for out_octets, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/state/counters/out_octets (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_out_octets is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_out_octets() directly.

    YANG Description: The total number of octets in IP packets for the
specified address family that the device
supplied to the lower layers for transmission.  This
includes packets generated locally and those forwarded by
the device.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """out_octets must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__out_octets = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_out_octets(self):
    self.__out_octets = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_out_error_pkts(self):
    """
    Getter method for out_error_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/state/counters/out_error_pkts (oc-yang:counter64)

    YANG Description: Number of IP packets for the specified address family
locally generated and discarded due to errors, including
no route found to the IP destination.
    """
    return self.__out_error_pkts
      
  def _set_out_error_pkts(self, v, load=False):
    """
    Setter method for out_error_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/state/counters/out_error_pkts (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_out_error_pkts is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_out_error_pkts() directly.

    YANG Description: Number of IP packets for the specified address family
locally generated and discarded due to errors, including
no route found to the IP destination.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-error-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """out_error_pkts must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-error-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__out_error_pkts = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_out_error_pkts(self):
    self.__out_error_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-error-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_out_forwarded_pkts(self):
    """
    Getter method for out_forwarded_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/state/counters/out_forwarded_pkts (oc-yang:counter64)

    YANG Description: The number of packets for which this entity was not their
final IP destination and for which it was successful in
finding a path to their final destination.
    """
    return self.__out_forwarded_pkts
      
  def _set_out_forwarded_pkts(self, v, load=False):
    """
    Setter method for out_forwarded_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/state/counters/out_forwarded_pkts (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_out_forwarded_pkts is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_out_forwarded_pkts() directly.

    YANG Description: The number of packets for which this entity was not their
final IP destination and for which it was successful in
finding a path to their final destination.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-forwarded-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """out_forwarded_pkts must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-forwarded-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__out_forwarded_pkts = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_out_forwarded_pkts(self):
    self.__out_forwarded_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-forwarded-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_out_forwarded_octets(self):
    """
    Getter method for out_forwarded_octets, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/state/counters/out_forwarded_octets (oc-yang:counter64)

    YANG Description: The number of octets in packets for which this entity was
not their final IP destination and for which it was
successful in finding a path to their final destination.
    """
    return self.__out_forwarded_octets
      
  def _set_out_forwarded_octets(self, v, load=False):
    """
    Setter method for out_forwarded_octets, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/state/counters/out_forwarded_octets (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_out_forwarded_octets is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_out_forwarded_octets() directly.

    YANG Description: The number of octets in packets for which this entity was
not their final IP destination and for which it was
successful in finding a path to their final destination.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-forwarded-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """out_forwarded_octets must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-forwarded-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__out_forwarded_octets = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_out_forwarded_octets(self):
    self.__out_forwarded_octets = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-forwarded-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_out_discarded_pkts(self):
    """
    Getter method for out_discarded_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/state/counters/out_discarded_pkts (oc-yang:counter64)

    YANG Description: The number of output IP packets for the
specified address family for which no problem was
encountered to prevent their transmission to their
destination, but were discarded (e.g., for lack of
buffer space).
    """
    return self.__out_discarded_pkts
      
  def _set_out_discarded_pkts(self, v, load=False):
    """
    Setter method for out_discarded_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/state/counters/out_discarded_pkts (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_out_discarded_pkts is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_out_discarded_pkts() directly.

    YANG Description: The number of output IP packets for the
specified address family for which no problem was
encountered to prevent their transmission to their
destination, but were discarded (e.g., for lack of
buffer space).
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-discarded-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """out_discarded_pkts must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-discarded-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__out_discarded_pkts = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_out_discarded_pkts(self):
    self.__out_discarded_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-discarded-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)

  in_pkts = __builtin__.property(_get_in_pkts)
  in_octets = __builtin__.property(_get_in_octets)
  in_error_pkts = __builtin__.property(_get_in_error_pkts)
  in_forwarded_pkts = __builtin__.property(_get_in_forwarded_pkts)
  in_forwarded_octets = __builtin__.property(_get_in_forwarded_octets)
  in_discarded_pkts = __builtin__.property(_get_in_discarded_pkts)
  out_pkts = __builtin__.property(_get_out_pkts)
  out_octets = __builtin__.property(_get_out_octets)
  out_error_pkts = __builtin__.property(_get_out_error_pkts)
  out_forwarded_pkts = __builtin__.property(_get_out_forwarded_pkts)
  out_forwarded_octets = __builtin__.property(_get_out_forwarded_octets)
  out_discarded_pkts = __builtin__.property(_get_out_discarded_pkts)


  _pyangbind_elements = OrderedDict([('in_pkts', in_pkts), ('in_octets', in_octets), ('in_error_pkts', in_error_pkts), ('in_forwarded_pkts', in_forwarded_pkts), ('in_forwarded_octets', in_forwarded_octets), ('in_discarded_pkts', in_discarded_pkts), ('out_pkts', out_pkts), ('out_octets', out_octets), ('out_error_pkts', out_error_pkts), ('out_forwarded_pkts', out_forwarded_pkts), ('out_forwarded_octets', out_forwarded_octets), ('out_discarded_pkts', out_discarded_pkts), ])


class yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/tunnel/ipv4/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Top level IPv4 operational state data
  """
  __slots__ = ('_path_helper', '_extmethods', '__enabled','__mtu','__dhcp_client','__counters',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)
    self.__mtu = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['68..max']}), is_leaf=True, yang_name="mtu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint16', is_config=False)
    self.__dhcp_client = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="dhcp-client", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)
    self.__counters = YANGDynClass(base=yc_counters_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_state_counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', 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 ['access-points', 'access-point', 'interfaces', 'interface', 'tunnel', 'ipv4', 'state']

  def _get_enabled(self):
    """
    Getter method for enabled, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/state/enabled (boolean)

    YANG Description: Controls whether IPv4 is enabled or disabled on this
interface.  When IPv4 is enabled, this interface is
connected to an IPv4 stack, and the interface can send
and receive IPv4 packets.
    """
    return self.__enabled
      
  def _set_enabled(self, v, load=False):
    """
    Setter method for enabled, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/state/enabled (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_enabled is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_enabled() directly.

    YANG Description: Controls whether IPv4 is enabled or disabled on this
interface.  When IPv4 is enabled, this interface is
connected to an IPv4 stack, and the interface can send
and receive IPv4 packets.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """enabled must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)""",
        })

    self.__enabled = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_enabled(self):
    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)


  def _get_mtu(self):
    """
    Getter method for mtu, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/state/mtu (uint16)

    YANG Description: The size, in octets, of the largest IPv4 packet that the
interface will send and receive.

The server may restrict the allowed values for this leaf,
depending on the interface's type.

If this leaf is not configured, the operationally used MTU
depends on the interface's type.
    """
    return self.__mtu
      
  def _set_mtu(self, v, load=False):
    """
    Setter method for mtu, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/state/mtu (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mtu is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mtu() directly.

    YANG Description: The size, in octets, of the largest IPv4 packet that the
interface will send and receive.

The server may restrict the allowed values for this leaf,
depending on the interface's type.

If this leaf is not configured, the operationally used MTU
depends on the interface's type.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['68..max']}), is_leaf=True, yang_name="mtu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint16', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mtu must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['68..max']}), is_leaf=True, yang_name="mtu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint16', is_config=False)""",
        })

    self.__mtu = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mtu(self):
    self.__mtu = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['68..max']}), is_leaf=True, yang_name="mtu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint16', is_config=False)


  def _get_dhcp_client(self):
    """
    Getter method for dhcp_client, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/state/dhcp_client (boolean)

    YANG Description: Enables a DHCP client on the interface in order to request
an address
    """
    return self.__dhcp_client
      
  def _set_dhcp_client(self, v, load=False):
    """
    Setter method for dhcp_client, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/state/dhcp_client (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dhcp_client is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dhcp_client() directly.

    YANG Description: Enables a DHCP client on the interface in order to request
an address
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="dhcp-client", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dhcp_client must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="dhcp-client", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)""",
        })

    self.__dhcp_client = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dhcp_client(self):
    self.__dhcp_client = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="dhcp-client", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)


  def _get_counters(self):
    """
    Getter method for counters, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/state/counters (container)

    YANG Description: Packet and byte counters for IP transmission and
reception for the address family.
    """
    return self.__counters
      
  def _set_counters(self, v, load=False):
    """
    Setter method for counters, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/state/counters (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_counters is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_counters() directly.

    YANG Description: Packet and byte counters for IP transmission and
reception for the address family.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_counters_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_state_counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """counters must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_counters_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_state_counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=False)""",
        })

    self.__counters = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_counters(self):
    self.__counters = YANGDynClass(base=yc_counters_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_state_counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=False)

  enabled = __builtin__.property(_get_enabled)
  mtu = __builtin__.property(_get_mtu)
  dhcp_client = __builtin__.property(_get_dhcp_client)
  counters = __builtin__.property(_get_counters)


  _pyangbind_elements = OrderedDict([('enabled', enabled), ('mtu', mtu), ('dhcp_client', dhcp_client), ('counters', counters), ])


class yc_ipv4_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/tunnel/ipv4. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Parameters for the IPv4 address family.
  """
  __slots__ = ('_path_helper', '_extmethods', '__addresses','__proxy_arp','__neighbors','__unnumbered','__config','__state',)

  _yang_name = 'ipv4'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__addresses = YANGDynClass(base=yc_addresses_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_addresses, is_container='container', yang_name="addresses", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__proxy_arp = YANGDynClass(base=yc_proxy_arp_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_proxy_arp, is_container='container', yang_name="proxy-arp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__neighbors = YANGDynClass(base=yc_neighbors_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_neighbors, is_container='container', yang_name="neighbors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__unnumbered = YANGDynClass(base=yc_unnumbered_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_unnumbered, is_container='container', yang_name="unnumbered", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'tunnel', 'ipv4']

  def _get_addresses(self):
    """
    Getter method for addresses, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/addresses (container)

    YANG Description: Enclosing container for address list
    """
    return self.__addresses
      
  def _set_addresses(self, v, load=False):
    """
    Setter method for addresses, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/addresses (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_addresses is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_addresses() directly.

    YANG Description: Enclosing container for address list
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_addresses_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_addresses, is_container='container', yang_name="addresses", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """addresses must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_addresses_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_addresses, is_container='container', yang_name="addresses", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

    self.__addresses = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_addresses(self):
    self.__addresses = YANGDynClass(base=yc_addresses_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_addresses, is_container='container', yang_name="addresses", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_proxy_arp(self):
    """
    Getter method for proxy_arp, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/proxy_arp (container)

    YANG Description: Configuration and operational state parameters
relating to proxy ARP. This functionality allows a
system to respond to ARP requests that are not
explicitly destined to the local system.
    """
    return self.__proxy_arp
      
  def _set_proxy_arp(self, v, load=False):
    """
    Setter method for proxy_arp, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/proxy_arp (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_proxy_arp is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_proxy_arp() directly.

    YANG Description: Configuration and operational state parameters
relating to proxy ARP. This functionality allows a
system to respond to ARP requests that are not
explicitly destined to the local system.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_proxy_arp_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_proxy_arp, is_container='container', yang_name="proxy-arp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """proxy_arp must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_proxy_arp_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_proxy_arp, is_container='container', yang_name="proxy-arp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

    self.__proxy_arp = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_proxy_arp(self):
    self.__proxy_arp = YANGDynClass(base=yc_proxy_arp_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_proxy_arp, is_container='container', yang_name="proxy-arp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_neighbors(self):
    """
    Getter method for neighbors, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/neighbors (container)

    YANG Description: Enclosing container for neighbor list
    """
    return self.__neighbors
      
  def _set_neighbors(self, v, load=False):
    """
    Setter method for neighbors, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/neighbors (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_neighbors is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_neighbors() directly.

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

    self.__neighbors = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_neighbors(self):
    self.__neighbors = YANGDynClass(base=yc_neighbors_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_neighbors, is_container='container', yang_name="neighbors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_unnumbered(self):
    """
    Getter method for unnumbered, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/unnumbered (container)

    YANG Description: Top-level container for setting unnumbered interfaces.
Includes reference the interface that provides the
address information
    """
    return self.__unnumbered
      
  def _set_unnumbered(self, v, load=False):
    """
    Setter method for unnumbered, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/unnumbered (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_unnumbered is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_unnumbered() directly.

    YANG Description: Top-level container for setting unnumbered interfaces.
Includes reference the interface that provides the
address information
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_unnumbered_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_unnumbered, is_container='container', yang_name="unnumbered", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """unnumbered must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_unnumbered_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_unnumbered, is_container='container', yang_name="unnumbered", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

    self.__unnumbered = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_unnumbered(self):
    self.__unnumbered = YANGDynClass(base=yc_unnumbered_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_unnumbered, is_container='container', yang_name="unnumbered", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/config (container)

    YANG Description: Top-level IPv4 configuration data for the interface
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Top-level IPv4 configuration data for the interface
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/state (container)

    YANG Description: Top level IPv4 operational state data
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4/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: Top level IPv4 operational state data
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

  addresses = __builtin__.property(_get_addresses, _set_addresses)
  proxy_arp = __builtin__.property(_get_proxy_arp, _set_proxy_arp)
  neighbors = __builtin__.property(_get_neighbors, _set_neighbors)
  unnumbered = __builtin__.property(_get_unnumbered, _set_unnumbered)
  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)


  _pyangbind_elements = OrderedDict([('addresses', addresses), ('proxy_arp', proxy_arp), ('neighbors', neighbors), ('unnumbered', unnumbered), ('config', config), ('state', state), ])


class yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_addresses_address_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/tunnel/ipv6/addresses/address/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Configuration data for each IPv6 address on
the interface
  """
  __slots__ = ('_path_helper', '_extmethods', '__ip','__prefix_length','__type',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__ip = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}), is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv6-address', is_config=True)
    self.__prefix_length = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..128']}), is_leaf=True, yang_name="prefix-length", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint8', is_config=True)
    self.__type = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'GLOBAL_UNICAST': {}, 'LINK_LOCAL_UNICAST': {}},), default=six.text_type("GLOBAL_UNICAST"), is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv6-address-type', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'tunnel', 'ipv6', 'addresses', 'address', 'config']

  def _get_ip(self):
    """
    Getter method for ip, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/addresses/address/config/ip (oc-inet:ipv6-address)

    YANG Description: The IPv6 address on the interface.
    """
    return self.__ip
      
  def _set_ip(self, v, load=False):
    """
    Setter method for ip, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/addresses/address/config/ip (oc-inet:ipv6-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ip is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ip() directly.

    YANG Description: The IPv6 address on the interface.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}), is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv6-address', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ip must be of a type compatible with oc-inet:ipv6-address""",
          'defined-type': "oc-inet:ipv6-address",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}), is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv6-address', is_config=True)""",
        })

    self.__ip = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ip(self):
    self.__ip = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}), is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv6-address', is_config=True)


  def _get_prefix_length(self):
    """
    Getter method for prefix_length, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/addresses/address/config/prefix_length (uint8)

    YANG Description: The length of the subnet prefix.
    """
    return self.__prefix_length
      
  def _set_prefix_length(self, v, load=False):
    """
    Setter method for prefix_length, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/addresses/address/config/prefix_length (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_prefix_length is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_prefix_length() directly.

    YANG Description: The length of the subnet prefix.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..128']}), is_leaf=True, yang_name="prefix-length", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint8', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """prefix_length must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..128']}), is_leaf=True, yang_name="prefix-length", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint8', is_config=True)""",
        })

    self.__prefix_length = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_prefix_length(self):
    self.__prefix_length = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..128']}), is_leaf=True, yang_name="prefix-length", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint8', is_config=True)


  def _get_type(self):
    """
    Getter method for type, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/addresses/address/config/type (oc-inet:ipv6-address-type)

    YANG Description: Specifies the explicit type of the IPv6 address being assigned
to the interface. By default, addresses are assumed to be
global unicast.  Where a link-local address is to be explicitly
configured, this leaf should be set to LINK_LOCAL.
    """
    return self.__type
      
  def _set_type(self, v, load=False):
    """
    Setter method for type, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/addresses/address/config/type (oc-inet:ipv6-address-type)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_type is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_type() directly.

    YANG Description: Specifies the explicit type of the IPv6 address being assigned
to the interface. By default, addresses are assumed to be
global unicast.  Where a link-local address is to be explicitly
configured, this leaf should be set to LINK_LOCAL.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'GLOBAL_UNICAST': {}, 'LINK_LOCAL_UNICAST': {}},), default=six.text_type("GLOBAL_UNICAST"), is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv6-address-type', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """type must be of a type compatible with oc-inet:ipv6-address-type""",
          'defined-type': "oc-inet:ipv6-address-type",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'GLOBAL_UNICAST': {}, 'LINK_LOCAL_UNICAST': {}},), default=six.text_type("GLOBAL_UNICAST"), is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv6-address-type', is_config=True)""",
        })

    self.__type = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_type(self):
    self.__type = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'GLOBAL_UNICAST': {}, 'LINK_LOCAL_UNICAST': {}},), default=six.text_type("GLOBAL_UNICAST"), is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv6-address-type', is_config=True)

  ip = __builtin__.property(_get_ip, _set_ip)
  prefix_length = __builtin__.property(_get_prefix_length, _set_prefix_length)
  type = __builtin__.property(_get_type, _set_type)


  _pyangbind_elements = OrderedDict([('ip', ip), ('prefix_length', prefix_length), ('type', type), ])


class yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_addresses_address_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/tunnel/ipv6/addresses/address/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: State data for each IPv6 address on the
interface
  """
  __slots__ = ('_path_helper', '_extmethods', '__ip','__prefix_length','__type','__origin','__status',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__ip = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}), is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv6-address', is_config=False)
    self.__prefix_length = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..128']}), is_leaf=True, yang_name="prefix-length", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint8', is_config=False)
    self.__type = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'GLOBAL_UNICAST': {}, 'LINK_LOCAL_UNICAST': {}},), default=six.text_type("GLOBAL_UNICAST"), is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv6-address-type', is_config=False)
    self.__origin = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OTHER': {}, 'STATIC': {}, 'DHCP': {}, 'LINK_LAYER': {}, 'RANDOM': {}},), is_leaf=True, yang_name="origin", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='ip-address-origin', is_config=False)
    self.__status = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'PREFERRED': {}, 'DEPRECATED': {}, 'INVALID': {}, 'INACCESSIBLE': {}, 'UNKNOWN': {}, 'TENTATIVE': {}, 'DUPLICATE': {}, 'OPTIMISTIC': {}},), is_leaf=True, yang_name="status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', 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 ['access-points', 'access-point', 'interfaces', 'interface', 'tunnel', 'ipv6', 'addresses', 'address', 'state']

  def _get_ip(self):
    """
    Getter method for ip, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/addresses/address/state/ip (oc-inet:ipv6-address)

    YANG Description: The IPv6 address on the interface.
    """
    return self.__ip
      
  def _set_ip(self, v, load=False):
    """
    Setter method for ip, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/addresses/address/state/ip (oc-inet:ipv6-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ip is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ip() directly.

    YANG Description: The IPv6 address on the interface.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}), is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv6-address', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ip must be of a type compatible with oc-inet:ipv6-address""",
          'defined-type': "oc-inet:ipv6-address",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}), is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv6-address', is_config=False)""",
        })

    self.__ip = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ip(self):
    self.__ip = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}), is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv6-address', is_config=False)


  def _get_prefix_length(self):
    """
    Getter method for prefix_length, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/addresses/address/state/prefix_length (uint8)

    YANG Description: The length of the subnet prefix.
    """
    return self.__prefix_length
      
  def _set_prefix_length(self, v, load=False):
    """
    Setter method for prefix_length, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/addresses/address/state/prefix_length (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_prefix_length is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_prefix_length() directly.

    YANG Description: The length of the subnet prefix.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..128']}), is_leaf=True, yang_name="prefix-length", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """prefix_length must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..128']}), is_leaf=True, yang_name="prefix-length", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint8', is_config=False)""",
        })

    self.__prefix_length = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_prefix_length(self):
    self.__prefix_length = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..128']}), is_leaf=True, yang_name="prefix-length", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint8', is_config=False)


  def _get_type(self):
    """
    Getter method for type, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/addresses/address/state/type (oc-inet:ipv6-address-type)

    YANG Description: Specifies the explicit type of the IPv6 address being assigned
to the interface. By default, addresses are assumed to be
global unicast.  Where a link-local address is to be explicitly
configured, this leaf should be set to LINK_LOCAL.
    """
    return self.__type
      
  def _set_type(self, v, load=False):
    """
    Setter method for type, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/addresses/address/state/type (oc-inet:ipv6-address-type)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_type is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_type() directly.

    YANG Description: Specifies the explicit type of the IPv6 address being assigned
to the interface. By default, addresses are assumed to be
global unicast.  Where a link-local address is to be explicitly
configured, this leaf should be set to LINK_LOCAL.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'GLOBAL_UNICAST': {}, 'LINK_LOCAL_UNICAST': {}},), default=six.text_type("GLOBAL_UNICAST"), is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv6-address-type', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """type must be of a type compatible with oc-inet:ipv6-address-type""",
          'defined-type': "oc-inet:ipv6-address-type",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'GLOBAL_UNICAST': {}, 'LINK_LOCAL_UNICAST': {}},), default=six.text_type("GLOBAL_UNICAST"), is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv6-address-type', is_config=False)""",
        })

    self.__type = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_type(self):
    self.__type = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'GLOBAL_UNICAST': {}, 'LINK_LOCAL_UNICAST': {}},), default=six.text_type("GLOBAL_UNICAST"), is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv6-address-type', is_config=False)


  def _get_origin(self):
    """
    Getter method for origin, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/addresses/address/state/origin (ip-address-origin)

    YANG Description: The origin of this address, e.g., static, dhcp, etc.
    """
    return self.__origin
      
  def _set_origin(self, v, load=False):
    """
    Setter method for origin, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/addresses/address/state/origin (ip-address-origin)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_origin is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_origin() directly.

    YANG Description: The origin of this address, e.g., static, dhcp, etc.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OTHER': {}, 'STATIC': {}, 'DHCP': {}, 'LINK_LAYER': {}, 'RANDOM': {}},), is_leaf=True, yang_name="origin", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='ip-address-origin', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """origin must be of a type compatible with ip-address-origin""",
          'defined-type': "openconfig-ap-interfaces:ip-address-origin",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OTHER': {}, 'STATIC': {}, 'DHCP': {}, 'LINK_LAYER': {}, 'RANDOM': {}},), is_leaf=True, yang_name="origin", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='ip-address-origin', is_config=False)""",
        })

    self.__origin = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_origin(self):
    self.__origin = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OTHER': {}, 'STATIC': {}, 'DHCP': {}, 'LINK_LAYER': {}, 'RANDOM': {}},), is_leaf=True, yang_name="origin", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='ip-address-origin', is_config=False)


  def _get_status(self):
    """
    Getter method for status, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/addresses/address/state/status (enumeration)

    YANG Description: The status of an address.  Most of the states correspond
to states from the IPv6 Stateless Address
Autoconfiguration protocol.
    """
    return self.__status
      
  def _set_status(self, v, load=False):
    """
    Setter method for status, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/addresses/address/state/status (enumeration)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_status is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_status() directly.

    YANG Description: The status of an address.  Most of the states correspond
to states from the IPv6 Stateless Address
Autoconfiguration protocol.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'PREFERRED': {}, 'DEPRECATED': {}, 'INVALID': {}, 'INACCESSIBLE': {}, 'UNKNOWN': {}, 'TENTATIVE': {}, 'DUPLICATE': {}, 'OPTIMISTIC': {}},), is_leaf=True, yang_name="status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """status must be of a type compatible with enumeration""",
          'defined-type': "openconfig-ap-interfaces:enumeration",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'PREFERRED': {}, 'DEPRECATED': {}, 'INVALID': {}, 'INACCESSIBLE': {}, 'UNKNOWN': {}, 'TENTATIVE': {}, 'DUPLICATE': {}, 'OPTIMISTIC': {}},), is_leaf=True, yang_name="status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', is_config=False)""",
        })

    self.__status = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_status(self):
    self.__status = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'PREFERRED': {}, 'DEPRECATED': {}, 'INVALID': {}, 'INACCESSIBLE': {}, 'UNKNOWN': {}, 'TENTATIVE': {}, 'DUPLICATE': {}, 'OPTIMISTIC': {}},), is_leaf=True, yang_name="status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', is_config=False)

  ip = __builtin__.property(_get_ip)
  prefix_length = __builtin__.property(_get_prefix_length)
  type = __builtin__.property(_get_type)
  origin = __builtin__.property(_get_origin)
  status = __builtin__.property(_get_status)


  _pyangbind_elements = OrderedDict([('ip', ip), ('prefix_length', prefix_length), ('type', type), ('origin', origin), ('status', status), ])


class yc_address_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_addresses_address(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/tunnel/ipv6/addresses/address. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: The list of configured IPv6 addresses on the interface.
  """
  __slots__ = ('_path_helper', '_extmethods', '__ip','__config','__state',)

  _yang_name = 'address'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__ip = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_addresses_address_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_addresses_address_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'tunnel', 'ipv6', 'addresses', 'address']

  def _get_ip(self):
    """
    Getter method for ip, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/addresses/address/ip (leafref)

    YANG Description: References the configured IP address
    """
    return self.__ip
      
  def _set_ip(self, v, load=False):
    """
    Setter method for ip, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/addresses/address/ip (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ip is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ip() directly.

    YANG Description: References the configured IP address
    """
    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="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ip must be of a type compatible with leafref""",
          'defined-type': "leafref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)""",
        })

    self.__ip = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ip(self):
    self.__ip = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)


  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/addresses/address/config (container)

    YANG Description: Configuration data for each IPv6 address on
the interface
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/addresses/address/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Configuration data for each IPv6 address on
the interface
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_addresses_address_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_addresses_address_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_addresses_address_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/addresses/address/state (container)

    YANG Description: State data for each IPv6 address on the
interface
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/addresses/address/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 data for each IPv6 address on the
interface
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_addresses_address_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_addresses_address_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_addresses_address_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

  ip = __builtin__.property(_get_ip, _set_ip)
  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)


  _pyangbind_elements = OrderedDict([('ip', ip), ('config', config), ('state', state), ])


class yc_addresses_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_addresses(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/tunnel/ipv6/addresses. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Enclosing container for address list
  """
  __slots__ = ('_path_helper', '_extmethods', '__address',)

  _yang_name = 'addresses'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__address = YANGDynClass(base=YANGListType("ip",yc_address_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_addresses_address, yang_name="address", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='ip', extensions=None), is_container='list', yang_name="address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='list', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'tunnel', 'ipv6', 'addresses']

  def _get_address(self):
    """
    Getter method for address, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/addresses/address (list)

    YANG Description: The list of configured IPv6 addresses on the interface.
    """
    return self.__address
      
  def _set_address(self, v, load=False):
    """
    Setter method for address, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/addresses/address (list)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_address is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_address() directly.

    YANG Description: The list of configured IPv6 addresses on the interface.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGListType("ip",yc_address_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_addresses_address, yang_name="address", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='ip', extensions=None), is_container='list', yang_name="address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='list', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """address must be of a type compatible with list""",
          'defined-type': "list",
          'generated-type': """YANGDynClass(base=YANGListType("ip",yc_address_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_addresses_address, yang_name="address", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='ip', extensions=None), is_container='list', yang_name="address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='list', is_config=True)""",
        })

    self.__address = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_address(self):
    self.__address = YANGDynClass(base=YANGListType("ip",yc_address_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_addresses_address, yang_name="address", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='ip', extensions=None), is_container='list', yang_name="address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='list', is_config=True)

  address = __builtin__.property(_get_address, _set_address)


  _pyangbind_elements = OrderedDict([('address', address), ])


class yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_router_advertisement_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/tunnel/ipv6/router-advertisement/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Configuration parameters relating to router advertisements
for IPv6.
  """
  __slots__ = ('_path_helper', '_extmethods', '__interval','__lifetime','__suppress','__managed','__other_config',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__interval = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=True)
    self.__lifetime = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="lifetime", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=True)
    self.__suppress = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="suppress", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)
    self.__managed = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="managed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)
    self.__other_config = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="other-config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'tunnel', 'ipv6', 'router-advertisement', 'config']

  def _get_interval(self):
    """
    Getter method for interval, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/router_advertisement/config/interval (uint32)

    YANG Description: The interval between periodic router advertisement neighbor
discovery messages sent on this interface expressed in
seconds.
    """
    return self.__interval
      
  def _set_interval(self, v, load=False):
    """
    Setter method for interval, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/router_advertisement/config/interval (uint32)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_interval is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_interval() directly.

    YANG Description: The interval between periodic router advertisement neighbor
discovery messages sent on this interface expressed in
seconds.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """interval must be of a type compatible with uint32""",
          'defined-type': "uint32",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=True)""",
        })

    self.__interval = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_interval(self):
    self.__interval = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=True)


  def _get_lifetime(self):
    """
    Getter method for lifetime, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/router_advertisement/config/lifetime (uint32)

    YANG Description: The lifetime advertised in the router advertisement neighbor
discovery message on this interface.
    """
    return self.__lifetime
      
  def _set_lifetime(self, v, load=False):
    """
    Setter method for lifetime, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/router_advertisement/config/lifetime (uint32)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_lifetime is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_lifetime() directly.

    YANG Description: The lifetime advertised in the router advertisement neighbor
discovery message on this interface.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="lifetime", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """lifetime must be of a type compatible with uint32""",
          'defined-type': "uint32",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="lifetime", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=True)""",
        })

    self.__lifetime = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_lifetime(self):
    self.__lifetime = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="lifetime", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=True)


  def _get_suppress(self):
    """
    Getter method for suppress, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/router_advertisement/config/suppress (boolean)

    YANG Description: When set to true, router advertisement neighbor discovery
messages are not transmitted on this interface.
    """
    return self.__suppress
      
  def _set_suppress(self, v, load=False):
    """
    Setter method for suppress, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/router_advertisement/config/suppress (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_suppress is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_suppress() directly.

    YANG Description: When set to true, router advertisement neighbor discovery
messages are not transmitted on this interface.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="suppress", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """suppress must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="suppress", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)""",
        })

    self.__suppress = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_suppress(self):
    self.__suppress = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="suppress", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)


  def _get_managed(self):
    """
    Getter method for managed, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/router_advertisement/config/managed (boolean)

    YANG Description: When set to true, the managed address configuration (M) flag is set in
the advertised router advertisement. The M flag indicates that there are
addresses available via DHCPv6.
    """
    return self.__managed
      
  def _set_managed(self, v, load=False):
    """
    Setter method for managed, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/router_advertisement/config/managed (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_managed is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_managed() directly.

    YANG Description: When set to true, the managed address configuration (M) flag is set in
the advertised router advertisement. The M flag indicates that there are
addresses available via DHCPv6.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="managed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """managed must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="managed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)""",
        })

    self.__managed = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_managed(self):
    self.__managed = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="managed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)


  def _get_other_config(self):
    """
    Getter method for other_config, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/router_advertisement/config/other_config (boolean)

    YANG Description: When set to true, the other configuration (O) flag is set in the
advertised router advertisement. The O flag indicates that there is
other configuration available via DHCPv6 (e.g., DNS servers).
    """
    return self.__other_config
      
  def _set_other_config(self, v, load=False):
    """
    Setter method for other_config, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/router_advertisement/config/other_config (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_other_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_other_config() directly.

    YANG Description: When set to true, the other configuration (O) flag is set in the
advertised router advertisement. The O flag indicates that there is
other configuration available via DHCPv6 (e.g., DNS servers).
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="other-config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """other_config must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="other-config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)""",
        })

    self.__other_config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_other_config(self):
    self.__other_config = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="other-config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)

  interval = __builtin__.property(_get_interval, _set_interval)
  lifetime = __builtin__.property(_get_lifetime, _set_lifetime)
  suppress = __builtin__.property(_get_suppress, _set_suppress)
  managed = __builtin__.property(_get_managed, _set_managed)
  other_config = __builtin__.property(_get_other_config, _set_other_config)


  _pyangbind_elements = OrderedDict([('interval', interval), ('lifetime', lifetime), ('suppress', suppress), ('managed', managed), ('other_config', other_config), ])


class yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_router_advertisement_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/tunnel/ipv6/router-advertisement/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Operational state parameters relating to router
advertisements for IPv6.
  """
  __slots__ = ('_path_helper', '_extmethods', '__interval','__lifetime','__suppress','__managed','__other_config',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__interval = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=False)
    self.__lifetime = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="lifetime", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=False)
    self.__suppress = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="suppress", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)
    self.__managed = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="managed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)
    self.__other_config = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="other-config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', 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 ['access-points', 'access-point', 'interfaces', 'interface', 'tunnel', 'ipv6', 'router-advertisement', 'state']

  def _get_interval(self):
    """
    Getter method for interval, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/router_advertisement/state/interval (uint32)

    YANG Description: The interval between periodic router advertisement neighbor
discovery messages sent on this interface expressed in
seconds.
    """
    return self.__interval
      
  def _set_interval(self, v, load=False):
    """
    Setter method for interval, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/router_advertisement/state/interval (uint32)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_interval is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_interval() directly.

    YANG Description: The interval between periodic router advertisement neighbor
discovery messages sent on this interface expressed in
seconds.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """interval must be of a type compatible with uint32""",
          'defined-type': "uint32",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=False)""",
        })

    self.__interval = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_interval(self):
    self.__interval = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=False)


  def _get_lifetime(self):
    """
    Getter method for lifetime, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/router_advertisement/state/lifetime (uint32)

    YANG Description: The lifetime advertised in the router advertisement neighbor
discovery message on this interface.
    """
    return self.__lifetime
      
  def _set_lifetime(self, v, load=False):
    """
    Setter method for lifetime, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/router_advertisement/state/lifetime (uint32)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_lifetime is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_lifetime() directly.

    YANG Description: The lifetime advertised in the router advertisement neighbor
discovery message on this interface.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="lifetime", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """lifetime must be of a type compatible with uint32""",
          'defined-type': "uint32",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="lifetime", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=False)""",
        })

    self.__lifetime = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_lifetime(self):
    self.__lifetime = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="lifetime", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=False)


  def _get_suppress(self):
    """
    Getter method for suppress, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/router_advertisement/state/suppress (boolean)

    YANG Description: When set to true, router advertisement neighbor discovery
messages are not transmitted on this interface.
    """
    return self.__suppress
      
  def _set_suppress(self, v, load=False):
    """
    Setter method for suppress, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/router_advertisement/state/suppress (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_suppress is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_suppress() directly.

    YANG Description: When set to true, router advertisement neighbor discovery
messages are not transmitted on this interface.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="suppress", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """suppress must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="suppress", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)""",
        })

    self.__suppress = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_suppress(self):
    self.__suppress = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="suppress", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)


  def _get_managed(self):
    """
    Getter method for managed, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/router_advertisement/state/managed (boolean)

    YANG Description: When set to true, the managed address configuration (M) flag is set in
the advertised router advertisement. The M flag indicates that there are
addresses available via DHCPv6.
    """
    return self.__managed
      
  def _set_managed(self, v, load=False):
    """
    Setter method for managed, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/router_advertisement/state/managed (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_managed is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_managed() directly.

    YANG Description: When set to true, the managed address configuration (M) flag is set in
the advertised router advertisement. The M flag indicates that there are
addresses available via DHCPv6.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="managed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """managed must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="managed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)""",
        })

    self.__managed = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_managed(self):
    self.__managed = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="managed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)


  def _get_other_config(self):
    """
    Getter method for other_config, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/router_advertisement/state/other_config (boolean)

    YANG Description: When set to true, the other configuration (O) flag is set in the
advertised router advertisement. The O flag indicates that there is
other configuration available via DHCPv6 (e.g., DNS servers).
    """
    return self.__other_config
      
  def _set_other_config(self, v, load=False):
    """
    Setter method for other_config, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/router_advertisement/state/other_config (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_other_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_other_config() directly.

    YANG Description: When set to true, the other configuration (O) flag is set in the
advertised router advertisement. The O flag indicates that there is
other configuration available via DHCPv6 (e.g., DNS servers).
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="other-config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """other_config must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="other-config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)""",
        })

    self.__other_config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_other_config(self):
    self.__other_config = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="other-config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)

  interval = __builtin__.property(_get_interval)
  lifetime = __builtin__.property(_get_lifetime)
  suppress = __builtin__.property(_get_suppress)
  managed = __builtin__.property(_get_managed)
  other_config = __builtin__.property(_get_other_config)


  _pyangbind_elements = OrderedDict([('interval', interval), ('lifetime', lifetime), ('suppress', suppress), ('managed', managed), ('other_config', other_config), ])


class yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_router_advertisement_prefixes_prefix_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/tunnel/ipv6/router-advertisement/prefixes/prefix/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Configuration parameters corresponding to an IPv6 prefix
within the router advertisement.
  """
  __slots__ = ('_path_helper', '_extmethods', '__prefix','__valid_lifetime','__preferred_lifetime','__disable_advertisement','__disable_autoconfiguration','__enable_onlink',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__prefix = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'}), is_leaf=True, yang_name="prefix", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv6-prefix', is_config=True)
    self.__valid_lifetime = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="valid-lifetime", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=True)
    self.__preferred_lifetime = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="preferred-lifetime", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=True)
    self.__disable_advertisement = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="disable-advertisement", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)
    self.__disable_autoconfiguration = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="disable-autoconfiguration", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)
    self.__enable_onlink = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="enable-onlink", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'tunnel', 'ipv6', 'router-advertisement', 'prefixes', 'prefix', 'config']

  def _get_prefix(self):
    """
    Getter method for prefix, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/router_advertisement/prefixes/prefix/config/prefix (oc-inet:ipv6-prefix)

    YANG Description: IPv6 prefix to be advertised within the router advertisement
message.
    """
    return self.__prefix
      
  def _set_prefix(self, v, load=False):
    """
    Setter method for prefix, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/router_advertisement/prefixes/prefix/config/prefix (oc-inet:ipv6-prefix)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_prefix is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_prefix() directly.

    YANG Description: IPv6 prefix to be advertised within the router advertisement
message.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'}), is_leaf=True, yang_name="prefix", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv6-prefix', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """prefix must be of a type compatible with oc-inet:ipv6-prefix""",
          'defined-type': "oc-inet:ipv6-prefix",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'}), is_leaf=True, yang_name="prefix", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv6-prefix', is_config=True)""",
        })

    self.__prefix = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_prefix(self):
    self.__prefix = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'}), is_leaf=True, yang_name="prefix", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv6-prefix', is_config=True)


  def _get_valid_lifetime(self):
    """
    Getter method for valid_lifetime, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/router_advertisement/prefixes/prefix/config/valid_lifetime (uint32)

    YANG Description: The length of time that the prefix is valid relative to the time
the packet was sent.
    """
    return self.__valid_lifetime
      
  def _set_valid_lifetime(self, v, load=False):
    """
    Setter method for valid_lifetime, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/router_advertisement/prefixes/prefix/config/valid_lifetime (uint32)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_valid_lifetime is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_valid_lifetime() directly.

    YANG Description: The length of time that the prefix is valid relative to the time
the packet was sent.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="valid-lifetime", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """valid_lifetime must be of a type compatible with uint32""",
          'defined-type': "uint32",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="valid-lifetime", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=True)""",
        })

    self.__valid_lifetime = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_valid_lifetime(self):
    self.__valid_lifetime = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="valid-lifetime", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=True)


  def _get_preferred_lifetime(self):
    """
    Getter method for preferred_lifetime, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/router_advertisement/prefixes/prefix/config/preferred_lifetime (uint32)

    YANG Description: The length of time that the address within the prefix remains
in the preferred state, i.e., unrestricted use is allowed by
upper-layer protocols. See RFC4862 for a complete definition
of preferred behaviours.
    """
    return self.__preferred_lifetime
      
  def _set_preferred_lifetime(self, v, load=False):
    """
    Setter method for preferred_lifetime, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/router_advertisement/prefixes/prefix/config/preferred_lifetime (uint32)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_preferred_lifetime is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_preferred_lifetime() directly.

    YANG Description: The length of time that the address within the prefix remains
in the preferred state, i.e., unrestricted use is allowed by
upper-layer protocols. See RFC4862 for a complete definition
of preferred behaviours.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="preferred-lifetime", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """preferred_lifetime must be of a type compatible with uint32""",
          'defined-type': "uint32",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="preferred-lifetime", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=True)""",
        })

    self.__preferred_lifetime = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_preferred_lifetime(self):
    self.__preferred_lifetime = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="preferred-lifetime", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=True)


  def _get_disable_advertisement(self):
    """
    Getter method for disable_advertisement, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/router_advertisement/prefixes/prefix/config/disable_advertisement (boolean)

    YANG Description: When set to true, the prefix is not advertised within
router advertisement messages that are sent as a result of
router soliciation messages.
    """
    return self.__disable_advertisement
      
  def _set_disable_advertisement(self, v, load=False):
    """
    Setter method for disable_advertisement, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/router_advertisement/prefixes/prefix/config/disable_advertisement (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_disable_advertisement is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_disable_advertisement() directly.

    YANG Description: When set to true, the prefix is not advertised within
router advertisement messages that are sent as a result of
router soliciation messages.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="disable-advertisement", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """disable_advertisement must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="disable-advertisement", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)""",
        })

    self.__disable_advertisement = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_disable_advertisement(self):
    self.__disable_advertisement = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="disable-advertisement", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)


  def _get_disable_autoconfiguration(self):
    """
    Getter method for disable_autoconfiguration, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/router_advertisement/prefixes/prefix/config/disable_autoconfiguration (boolean)

    YANG Description: When set to true, the prefix is marked as not to be used for stateless
address configuration. This is achieved by setting the autonomous address
configuration bit for the prefix.
    """
    return self.__disable_autoconfiguration
      
  def _set_disable_autoconfiguration(self, v, load=False):
    """
    Setter method for disable_autoconfiguration, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/router_advertisement/prefixes/prefix/config/disable_autoconfiguration (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_disable_autoconfiguration is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_disable_autoconfiguration() directly.

    YANG Description: When set to true, the prefix is marked as not to be used for stateless
address configuration. This is achieved by setting the autonomous address
configuration bit for the prefix.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="disable-autoconfiguration", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """disable_autoconfiguration must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="disable-autoconfiguration", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)""",
        })

    self.__disable_autoconfiguration = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_disable_autoconfiguration(self):
    self.__disable_autoconfiguration = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="disable-autoconfiguration", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)


  def _get_enable_onlink(self):
    """
    Getter method for enable_onlink, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/router_advertisement/prefixes/prefix/config/enable_onlink (boolean)

    YANG Description: When set to true, the prefix is marked as being on link by setting the
L-bit for the prefix within a router advertisement.
    """
    return self.__enable_onlink
      
  def _set_enable_onlink(self, v, load=False):
    """
    Setter method for enable_onlink, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/router_advertisement/prefixes/prefix/config/enable_onlink (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_enable_onlink is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_enable_onlink() directly.

    YANG Description: When set to true, the prefix is marked as being on link by setting the
L-bit for the prefix within a router advertisement.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="enable-onlink", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """enable_onlink must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="enable-onlink", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)""",
        })

    self.__enable_onlink = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_enable_onlink(self):
    self.__enable_onlink = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="enable-onlink", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)

  prefix = __builtin__.property(_get_prefix, _set_prefix)
  valid_lifetime = __builtin__.property(_get_valid_lifetime, _set_valid_lifetime)
  preferred_lifetime = __builtin__.property(_get_preferred_lifetime, _set_preferred_lifetime)
  disable_advertisement = __builtin__.property(_get_disable_advertisement, _set_disable_advertisement)
  disable_autoconfiguration = __builtin__.property(_get_disable_autoconfiguration, _set_disable_autoconfiguration)
  enable_onlink = __builtin__.property(_get_enable_onlink, _set_enable_onlink)


  _pyangbind_elements = OrderedDict([('prefix', prefix), ('valid_lifetime', valid_lifetime), ('preferred_lifetime', preferred_lifetime), ('disable_advertisement', disable_advertisement), ('disable_autoconfiguration', disable_autoconfiguration), ('enable_onlink', enable_onlink), ])


class yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_router_advertisement_prefixes_prefix_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/tunnel/ipv6/router-advertisement/prefixes/prefix/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Operational state parameters corresponding to an IPv6 prefix
within the router advertisement.
  """
  __slots__ = ('_path_helper', '_extmethods', '__prefix','__valid_lifetime','__preferred_lifetime','__disable_advertisement','__disable_autoconfiguration','__enable_onlink',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__prefix = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'}), is_leaf=True, yang_name="prefix", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv6-prefix', is_config=False)
    self.__valid_lifetime = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="valid-lifetime", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=False)
    self.__preferred_lifetime = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="preferred-lifetime", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=False)
    self.__disable_advertisement = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="disable-advertisement", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)
    self.__disable_autoconfiguration = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="disable-autoconfiguration", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)
    self.__enable_onlink = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="enable-onlink", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', 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 ['access-points', 'access-point', 'interfaces', 'interface', 'tunnel', 'ipv6', 'router-advertisement', 'prefixes', 'prefix', 'state']

  def _get_prefix(self):
    """
    Getter method for prefix, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/router_advertisement/prefixes/prefix/state/prefix (oc-inet:ipv6-prefix)

    YANG Description: IPv6 prefix to be advertised within the router advertisement
message.
    """
    return self.__prefix
      
  def _set_prefix(self, v, load=False):
    """
    Setter method for prefix, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/router_advertisement/prefixes/prefix/state/prefix (oc-inet:ipv6-prefix)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_prefix is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_prefix() directly.

    YANG Description: IPv6 prefix to be advertised within the router advertisement
message.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'}), is_leaf=True, yang_name="prefix", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv6-prefix', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """prefix must be of a type compatible with oc-inet:ipv6-prefix""",
          'defined-type': "oc-inet:ipv6-prefix",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'}), is_leaf=True, yang_name="prefix", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv6-prefix', is_config=False)""",
        })

    self.__prefix = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_prefix(self):
    self.__prefix = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'}), is_leaf=True, yang_name="prefix", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv6-prefix', is_config=False)


  def _get_valid_lifetime(self):
    """
    Getter method for valid_lifetime, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/router_advertisement/prefixes/prefix/state/valid_lifetime (uint32)

    YANG Description: The length of time that the prefix is valid relative to the time
the packet was sent.
    """
    return self.__valid_lifetime
      
  def _set_valid_lifetime(self, v, load=False):
    """
    Setter method for valid_lifetime, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/router_advertisement/prefixes/prefix/state/valid_lifetime (uint32)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_valid_lifetime is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_valid_lifetime() directly.

    YANG Description: The length of time that the prefix is valid relative to the time
the packet was sent.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="valid-lifetime", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """valid_lifetime must be of a type compatible with uint32""",
          'defined-type': "uint32",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="valid-lifetime", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=False)""",
        })

    self.__valid_lifetime = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_valid_lifetime(self):
    self.__valid_lifetime = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="valid-lifetime", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=False)


  def _get_preferred_lifetime(self):
    """
    Getter method for preferred_lifetime, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/router_advertisement/prefixes/prefix/state/preferred_lifetime (uint32)

    YANG Description: The length of time that the address within the prefix remains
in the preferred state, i.e., unrestricted use is allowed by
upper-layer protocols. See RFC4862 for a complete definition
of preferred behaviours.
    """
    return self.__preferred_lifetime
      
  def _set_preferred_lifetime(self, v, load=False):
    """
    Setter method for preferred_lifetime, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/router_advertisement/prefixes/prefix/state/preferred_lifetime (uint32)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_preferred_lifetime is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_preferred_lifetime() directly.

    YANG Description: The length of time that the address within the prefix remains
in the preferred state, i.e., unrestricted use is allowed by
upper-layer protocols. See RFC4862 for a complete definition
of preferred behaviours.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="preferred-lifetime", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """preferred_lifetime must be of a type compatible with uint32""",
          'defined-type': "uint32",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="preferred-lifetime", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=False)""",
        })

    self.__preferred_lifetime = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_preferred_lifetime(self):
    self.__preferred_lifetime = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="preferred-lifetime", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=False)


  def _get_disable_advertisement(self):
    """
    Getter method for disable_advertisement, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/router_advertisement/prefixes/prefix/state/disable_advertisement (boolean)

    YANG Description: When set to true, the prefix is not advertised within
router advertisement messages that are sent as a result of
router soliciation messages.
    """
    return self.__disable_advertisement
      
  def _set_disable_advertisement(self, v, load=False):
    """
    Setter method for disable_advertisement, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/router_advertisement/prefixes/prefix/state/disable_advertisement (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_disable_advertisement is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_disable_advertisement() directly.

    YANG Description: When set to true, the prefix is not advertised within
router advertisement messages that are sent as a result of
router soliciation messages.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="disable-advertisement", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """disable_advertisement must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="disable-advertisement", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)""",
        })

    self.__disable_advertisement = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_disable_advertisement(self):
    self.__disable_advertisement = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="disable-advertisement", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)


  def _get_disable_autoconfiguration(self):
    """
    Getter method for disable_autoconfiguration, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/router_advertisement/prefixes/prefix/state/disable_autoconfiguration (boolean)

    YANG Description: When set to true, the prefix is marked as not to be used for stateless
address configuration. This is achieved by setting the autonomous address
configuration bit for the prefix.
    """
    return self.__disable_autoconfiguration
      
  def _set_disable_autoconfiguration(self, v, load=False):
    """
    Setter method for disable_autoconfiguration, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/router_advertisement/prefixes/prefix/state/disable_autoconfiguration (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_disable_autoconfiguration is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_disable_autoconfiguration() directly.

    YANG Description: When set to true, the prefix is marked as not to be used for stateless
address configuration. This is achieved by setting the autonomous address
configuration bit for the prefix.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="disable-autoconfiguration", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """disable_autoconfiguration must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="disable-autoconfiguration", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)""",
        })

    self.__disable_autoconfiguration = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_disable_autoconfiguration(self):
    self.__disable_autoconfiguration = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="disable-autoconfiguration", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)


  def _get_enable_onlink(self):
    """
    Getter method for enable_onlink, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/router_advertisement/prefixes/prefix/state/enable_onlink (boolean)

    YANG Description: When set to true, the prefix is marked as being on link by setting the
L-bit for the prefix within a router advertisement.
    """
    return self.__enable_onlink
      
  def _set_enable_onlink(self, v, load=False):
    """
    Setter method for enable_onlink, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/router_advertisement/prefixes/prefix/state/enable_onlink (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_enable_onlink is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_enable_onlink() directly.

    YANG Description: When set to true, the prefix is marked as being on link by setting the
L-bit for the prefix within a router advertisement.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="enable-onlink", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """enable_onlink must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="enable-onlink", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)""",
        })

    self.__enable_onlink = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_enable_onlink(self):
    self.__enable_onlink = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="enable-onlink", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)

  prefix = __builtin__.property(_get_prefix)
  valid_lifetime = __builtin__.property(_get_valid_lifetime)
  preferred_lifetime = __builtin__.property(_get_preferred_lifetime)
  disable_advertisement = __builtin__.property(_get_disable_advertisement)
  disable_autoconfiguration = __builtin__.property(_get_disable_autoconfiguration)
  enable_onlink = __builtin__.property(_get_enable_onlink)


  _pyangbind_elements = OrderedDict([('prefix', prefix), ('valid_lifetime', valid_lifetime), ('preferred_lifetime', preferred_lifetime), ('disable_advertisement', disable_advertisement), ('disable_autoconfiguration', disable_autoconfiguration), ('enable_onlink', enable_onlink), ])


class yc_prefix_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_router_advertisement_prefixes_prefix(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/tunnel/ipv6/router-advertisement/prefixes/prefix. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: List of prefixes that are to be included in the IPv6
router-advertisement messages for the interface. The list
is keyed by the IPv6 prefix in CIDR representation.

Prefixes that are listed are those that are to be
advertised in router advertisement messages. Where there
are IPv6 global addresses configured on an interface and
the prefix is not listed in the prefix list, it MUST NOT
be advertised in the router advertisement message.
  """
  __slots__ = ('_path_helper', '_extmethods', '__prefix','__config','__state',)

  _yang_name = 'prefix'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__prefix = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="prefix", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_router_advertisement_prefixes_prefix_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_router_advertisement_prefixes_prefix_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'tunnel', 'ipv6', 'router-advertisement', 'prefixes', 'prefix']

  def _get_prefix(self):
    """
    Getter method for prefix, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/router_advertisement/prefixes/prefix/prefix (leafref)

    YANG Description: Reference to the IPv6 prefix key for the prefix list.
    """
    return self.__prefix
      
  def _set_prefix(self, v, load=False):
    """
    Setter method for prefix, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/router_advertisement/prefixes/prefix/prefix (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_prefix is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_prefix() directly.

    YANG Description: Reference to the IPv6 prefix key for the prefix list.
    """
    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="prefix", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """prefix must be of a type compatible with leafref""",
          'defined-type': "leafref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="prefix", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)""",
        })

    self.__prefix = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_prefix(self):
    self.__prefix = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="prefix", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)


  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/router_advertisement/prefixes/prefix/config (container)

    YANG Description: Configuration parameters corresponding to an IPv6 prefix
within the router advertisement.
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/router_advertisement/prefixes/prefix/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Configuration parameters corresponding to an IPv6 prefix
within the router advertisement.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_router_advertisement_prefixes_prefix_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_router_advertisement_prefixes_prefix_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_router_advertisement_prefixes_prefix_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/router_advertisement/prefixes/prefix/state (container)

    YANG Description: Operational state parameters corresponding to an IPv6 prefix
within the router advertisement.
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/router_advertisement/prefixes/prefix/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: Operational state parameters corresponding to an IPv6 prefix
within the router advertisement.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_router_advertisement_prefixes_prefix_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_router_advertisement_prefixes_prefix_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_router_advertisement_prefixes_prefix_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

  prefix = __builtin__.property(_get_prefix, _set_prefix)
  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)


  _pyangbind_elements = OrderedDict([('prefix', prefix), ('config', config), ('state', state), ])


class yc_prefixes_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_router_advertisement_prefixes(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/tunnel/ipv6/router-advertisement/prefixes. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Container for a list of prefixes that are included in the
router advertisement message.
  """
  __slots__ = ('_path_helper', '_extmethods', '__prefix',)

  _yang_name = 'prefixes'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__prefix = YANGDynClass(base=YANGListType("prefix",yc_prefix_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_router_advertisement_prefixes_prefix, yang_name="prefix", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='prefix', extensions=None), is_container='list', yang_name="prefix", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='list', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'tunnel', 'ipv6', 'router-advertisement', 'prefixes']

  def _get_prefix(self):
    """
    Getter method for prefix, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/router_advertisement/prefixes/prefix (list)

    YANG Description: List of prefixes that are to be included in the IPv6
router-advertisement messages for the interface. The list
is keyed by the IPv6 prefix in CIDR representation.

Prefixes that are listed are those that are to be
advertised in router advertisement messages. Where there
are IPv6 global addresses configured on an interface and
the prefix is not listed in the prefix list, it MUST NOT
be advertised in the router advertisement message.
    """
    return self.__prefix
      
  def _set_prefix(self, v, load=False):
    """
    Setter method for prefix, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/router_advertisement/prefixes/prefix (list)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_prefix is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_prefix() directly.

    YANG Description: List of prefixes that are to be included in the IPv6
router-advertisement messages for the interface. The list
is keyed by the IPv6 prefix in CIDR representation.

Prefixes that are listed are those that are to be
advertised in router advertisement messages. Where there
are IPv6 global addresses configured on an interface and
the prefix is not listed in the prefix list, it MUST NOT
be advertised in the router advertisement message.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGListType("prefix",yc_prefix_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_router_advertisement_prefixes_prefix, yang_name="prefix", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='prefix', extensions=None), is_container='list', yang_name="prefix", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='list', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """prefix must be of a type compatible with list""",
          'defined-type': "list",
          'generated-type': """YANGDynClass(base=YANGListType("prefix",yc_prefix_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_router_advertisement_prefixes_prefix, yang_name="prefix", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='prefix', extensions=None), is_container='list', yang_name="prefix", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='list', is_config=True)""",
        })

    self.__prefix = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_prefix(self):
    self.__prefix = YANGDynClass(base=YANGListType("prefix",yc_prefix_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_router_advertisement_prefixes_prefix, yang_name="prefix", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='prefix', extensions=None), is_container='list', yang_name="prefix", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='list', is_config=True)

  prefix = __builtin__.property(_get_prefix, _set_prefix)


  _pyangbind_elements = OrderedDict([('prefix', prefix), ])


class yc_router_advertisement_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_router_advertisement(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/tunnel/ipv6/router-advertisement. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Configuration and operational state parameters relating to
router advertisements.
  """
  __slots__ = ('_path_helper', '_extmethods', '__config','__state','__prefixes',)

  _yang_name = 'router-advertisement'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_router_advertisement_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_router_advertisement_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__prefixes = YANGDynClass(base=yc_prefixes_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_router_advertisement_prefixes, is_container='container', yang_name="prefixes", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'tunnel', 'ipv6', 'router-advertisement']

  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/router_advertisement/config (container)

    YANG Description: Configuration parameters relating to router advertisements
for IPv6.
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/router_advertisement/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Configuration parameters relating to router advertisements
for IPv6.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_router_advertisement_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_router_advertisement_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_router_advertisement_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/router_advertisement/state (container)

    YANG Description: Operational state parameters relating to router
advertisements for IPv6.
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/router_advertisement/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: Operational state parameters relating to router
advertisements for IPv6.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_router_advertisement_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_router_advertisement_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_router_advertisement_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_prefixes(self):
    """
    Getter method for prefixes, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/router_advertisement/prefixes (container)

    YANG Description: Container for a list of prefixes that are included in the
router advertisement message.
    """
    return self.__prefixes
      
  def _set_prefixes(self, v, load=False):
    """
    Setter method for prefixes, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/router_advertisement/prefixes (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_prefixes is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_prefixes() directly.

    YANG Description: Container for a list of prefixes that are included in the
router advertisement message.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_prefixes_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_router_advertisement_prefixes, is_container='container', yang_name="prefixes", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """prefixes must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_prefixes_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_router_advertisement_prefixes, is_container='container', yang_name="prefixes", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

    self.__prefixes = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_prefixes(self):
    self.__prefixes = YANGDynClass(base=yc_prefixes_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_router_advertisement_prefixes, is_container='container', yang_name="prefixes", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)
  prefixes = __builtin__.property(_get_prefixes, _set_prefixes)


  _pyangbind_elements = OrderedDict([('config', config), ('state', state), ('prefixes', prefixes), ])


class yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_neighbors_neighbor_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/tunnel/ipv6/neighbors/neighbor/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Configuration data for each IPv6 address on
the interface
  """
  __slots__ = ('_path_helper', '_extmethods', '__ip','__link_layer_address',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__ip = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}), is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv6-address', is_config=True)
    self.__link_layer_address = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'}), is_leaf=True, yang_name="link-layer-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:phys-address', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'tunnel', 'ipv6', 'neighbors', 'neighbor', 'config']

  def _get_ip(self):
    """
    Getter method for ip, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/neighbors/neighbor/config/ip (oc-inet:ipv6-address)

    YANG Description: The IPv6 address of the neighbor node.
    """
    return self.__ip
      
  def _set_ip(self, v, load=False):
    """
    Setter method for ip, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/neighbors/neighbor/config/ip (oc-inet:ipv6-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ip is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ip() directly.

    YANG Description: The IPv6 address of the neighbor node.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}), is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv6-address', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ip must be of a type compatible with oc-inet:ipv6-address""",
          'defined-type': "oc-inet:ipv6-address",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}), is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv6-address', is_config=True)""",
        })

    self.__ip = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ip(self):
    self.__ip = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}), is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv6-address', is_config=True)


  def _get_link_layer_address(self):
    """
    Getter method for link_layer_address, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/neighbors/neighbor/config/link_layer_address (oc-yang:phys-address)

    YANG Description: The link-layer address of the neighbor node.
    """
    return self.__link_layer_address
      
  def _set_link_layer_address(self, v, load=False):
    """
    Setter method for link_layer_address, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/neighbors/neighbor/config/link_layer_address (oc-yang:phys-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_link_layer_address is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_link_layer_address() directly.

    YANG Description: The link-layer address of the neighbor node.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'}), is_leaf=True, yang_name="link-layer-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:phys-address', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """link_layer_address must be of a type compatible with oc-yang:phys-address""",
          'defined-type': "oc-yang:phys-address",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'}), is_leaf=True, yang_name="link-layer-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:phys-address', is_config=True)""",
        })

    self.__link_layer_address = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_link_layer_address(self):
    self.__link_layer_address = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'}), is_leaf=True, yang_name="link-layer-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:phys-address', is_config=True)

  ip = __builtin__.property(_get_ip, _set_ip)
  link_layer_address = __builtin__.property(_get_link_layer_address, _set_link_layer_address)


  _pyangbind_elements = OrderedDict([('ip', ip), ('link_layer_address', link_layer_address), ])


class yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_neighbors_neighbor_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/tunnel/ipv6/neighbors/neighbor/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: State data for each IPv6 address on the
interface
  """
  __slots__ = ('_path_helper', '_extmethods', '__ip','__link_layer_address','__origin','__is_router','__neighbor_state',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__ip = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}), is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv6-address', is_config=False)
    self.__link_layer_address = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'}), is_leaf=True, yang_name="link-layer-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:phys-address', is_config=False)
    self.__origin = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OTHER': {}, 'STATIC': {}, 'DYNAMIC': {}},), is_leaf=True, yang_name="origin", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='neighbor-origin', is_config=False)
    self.__is_router = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="is-router", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)
    self.__neighbor_state = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'INCOMPLETE': {}, 'REACHABLE': {}, 'STALE': {}, 'DELAY': {}, 'PROBE': {}},), is_leaf=True, yang_name="neighbor-state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', 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 ['access-points', 'access-point', 'interfaces', 'interface', 'tunnel', 'ipv6', 'neighbors', 'neighbor', 'state']

  def _get_ip(self):
    """
    Getter method for ip, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/neighbors/neighbor/state/ip (oc-inet:ipv6-address)

    YANG Description: The IPv6 address of the neighbor node.
    """
    return self.__ip
      
  def _set_ip(self, v, load=False):
    """
    Setter method for ip, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/neighbors/neighbor/state/ip (oc-inet:ipv6-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ip is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ip() directly.

    YANG Description: The IPv6 address of the neighbor node.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}), is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv6-address', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ip must be of a type compatible with oc-inet:ipv6-address""",
          'defined-type': "oc-inet:ipv6-address",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}), is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv6-address', is_config=False)""",
        })

    self.__ip = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ip(self):
    self.__ip = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'}), is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-inet:ipv6-address', is_config=False)


  def _get_link_layer_address(self):
    """
    Getter method for link_layer_address, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/neighbors/neighbor/state/link_layer_address (oc-yang:phys-address)

    YANG Description: The link-layer address of the neighbor node.
    """
    return self.__link_layer_address
      
  def _set_link_layer_address(self, v, load=False):
    """
    Setter method for link_layer_address, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/neighbors/neighbor/state/link_layer_address (oc-yang:phys-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_link_layer_address is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_link_layer_address() directly.

    YANG Description: The link-layer address of the neighbor node.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'}), is_leaf=True, yang_name="link-layer-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:phys-address', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """link_layer_address must be of a type compatible with oc-yang:phys-address""",
          'defined-type': "oc-yang:phys-address",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'}), is_leaf=True, yang_name="link-layer-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:phys-address', is_config=False)""",
        })

    self.__link_layer_address = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_link_layer_address(self):
    self.__link_layer_address = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'}), is_leaf=True, yang_name="link-layer-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:phys-address', is_config=False)


  def _get_origin(self):
    """
    Getter method for origin, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/neighbors/neighbor/state/origin (neighbor-origin)

    YANG Description: The origin of this neighbor entry.
    """
    return self.__origin
      
  def _set_origin(self, v, load=False):
    """
    Setter method for origin, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/neighbors/neighbor/state/origin (neighbor-origin)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_origin is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_origin() directly.

    YANG Description: The origin of this neighbor entry.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OTHER': {}, 'STATIC': {}, 'DYNAMIC': {}},), is_leaf=True, yang_name="origin", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='neighbor-origin', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """origin must be of a type compatible with neighbor-origin""",
          'defined-type': "openconfig-ap-interfaces:neighbor-origin",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OTHER': {}, 'STATIC': {}, 'DYNAMIC': {}},), is_leaf=True, yang_name="origin", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='neighbor-origin', is_config=False)""",
        })

    self.__origin = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_origin(self):
    self.__origin = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OTHER': {}, 'STATIC': {}, 'DYNAMIC': {}},), is_leaf=True, yang_name="origin", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='neighbor-origin', is_config=False)


  def _get_is_router(self):
    """
    Getter method for is_router, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/neighbors/neighbor/state/is_router (boolean)

    YANG Description: Indicates that the neighbor node acts as a router.
    """
    return self.__is_router
      
  def _set_is_router(self, v, load=False):
    """
    Setter method for is_router, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/neighbors/neighbor/state/is_router (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_is_router is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_is_router() directly.

    YANG Description: Indicates that the neighbor node acts as a router.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="is-router", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """is_router must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="is-router", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)""",
        })

    self.__is_router = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_is_router(self):
    self.__is_router = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="is-router", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)


  def _get_neighbor_state(self):
    """
    Getter method for neighbor_state, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/neighbors/neighbor/state/neighbor_state (enumeration)

    YANG Description: The Neighbor Unreachability Detection state of this
entry.
    """
    return self.__neighbor_state
      
  def _set_neighbor_state(self, v, load=False):
    """
    Setter method for neighbor_state, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/neighbors/neighbor/state/neighbor_state (enumeration)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_neighbor_state is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_neighbor_state() directly.

    YANG Description: The Neighbor Unreachability Detection state of this
entry.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'INCOMPLETE': {}, 'REACHABLE': {}, 'STALE': {}, 'DELAY': {}, 'PROBE': {}},), is_leaf=True, yang_name="neighbor-state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """neighbor_state must be of a type compatible with enumeration""",
          'defined-type': "openconfig-ap-interfaces:enumeration",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'INCOMPLETE': {}, 'REACHABLE': {}, 'STALE': {}, 'DELAY': {}, 'PROBE': {}},), is_leaf=True, yang_name="neighbor-state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', is_config=False)""",
        })

    self.__neighbor_state = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_neighbor_state(self):
    self.__neighbor_state = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'INCOMPLETE': {}, 'REACHABLE': {}, 'STALE': {}, 'DELAY': {}, 'PROBE': {}},), is_leaf=True, yang_name="neighbor-state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='enumeration', is_config=False)

  ip = __builtin__.property(_get_ip)
  link_layer_address = __builtin__.property(_get_link_layer_address)
  origin = __builtin__.property(_get_origin)
  is_router = __builtin__.property(_get_is_router)
  neighbor_state = __builtin__.property(_get_neighbor_state)


  _pyangbind_elements = OrderedDict([('ip', ip), ('link_layer_address', link_layer_address), ('origin', origin), ('is_router', is_router), ('neighbor_state', neighbor_state), ])


class yc_neighbor_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_neighbors_neighbor(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/tunnel/ipv6/neighbors/neighbor. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: List of IPv6 neighbors
  """
  __slots__ = ('_path_helper', '_extmethods', '__ip','__config','__state',)

  _yang_name = 'neighbor'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__ip = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_neighbors_neighbor_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_neighbors_neighbor_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'tunnel', 'ipv6', 'neighbors', 'neighbor']

  def _get_ip(self):
    """
    Getter method for ip, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/neighbors/neighbor/ip (leafref)

    YANG Description: References the configured IP neighbor address
    """
    return self.__ip
      
  def _set_ip(self, v, load=False):
    """
    Setter method for ip, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/neighbors/neighbor/ip (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ip is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ip() directly.

    YANG Description: References the configured IP neighbor address
    """
    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="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ip must be of a type compatible with leafref""",
          'defined-type': "leafref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)""",
        })

    self.__ip = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ip(self):
    self.__ip = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="ip", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)


  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/neighbors/neighbor/config (container)

    YANG Description: Configuration data for each IPv6 address on
the interface
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/neighbors/neighbor/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Configuration data for each IPv6 address on
the interface
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_neighbors_neighbor_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_neighbors_neighbor_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_neighbors_neighbor_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/neighbors/neighbor/state (container)

    YANG Description: State data for each IPv6 address on the
interface
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/neighbors/neighbor/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 data for each IPv6 address on the
interface
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_neighbors_neighbor_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_neighbors_neighbor_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_neighbors_neighbor_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

  ip = __builtin__.property(_get_ip, _set_ip)
  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)


  _pyangbind_elements = OrderedDict([('ip', ip), ('config', config), ('state', state), ])


class yc_neighbors_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_neighbors(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/tunnel/ipv6/neighbors. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Enclosing container for list of IPv6 neighbors
  """
  __slots__ = ('_path_helper', '_extmethods', '__neighbor',)

  _yang_name = 'neighbors'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__neighbor = YANGDynClass(base=YANGListType("ip",yc_neighbor_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_neighbors_neighbor, yang_name="neighbor", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='ip', extensions=None), is_container='list', yang_name="neighbor", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='list', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'tunnel', 'ipv6', 'neighbors']

  def _get_neighbor(self):
    """
    Getter method for neighbor, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/neighbors/neighbor (list)

    YANG Description: List of IPv6 neighbors
    """
    return self.__neighbor
      
  def _set_neighbor(self, v, load=False):
    """
    Setter method for neighbor, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/neighbors/neighbor (list)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_neighbor is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_neighbor() directly.

    YANG Description: List of IPv6 neighbors
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGListType("ip",yc_neighbor_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_neighbors_neighbor, yang_name="neighbor", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='ip', extensions=None), is_container='list', yang_name="neighbor", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='list', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """neighbor must be of a type compatible with list""",
          'defined-type': "list",
          'generated-type': """YANGDynClass(base=YANGListType("ip",yc_neighbor_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_neighbors_neighbor, yang_name="neighbor", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='ip', extensions=None), is_container='list', yang_name="neighbor", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='list', is_config=True)""",
        })

    self.__neighbor = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_neighbor(self):
    self.__neighbor = YANGDynClass(base=YANGListType("ip",yc_neighbor_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_neighbors_neighbor, yang_name="neighbor", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='ip', extensions=None), is_container='list', yang_name="neighbor", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='list', is_config=True)

  neighbor = __builtin__.property(_get_neighbor, _set_neighbor)


  _pyangbind_elements = OrderedDict([('neighbor', neighbor), ])


class yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_unnumbered_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/tunnel/ipv6/unnumbered/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Configuration data for unnumbered interface
  """
  __slots__ = ('_path_helper', '_extmethods', '__enabled',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'tunnel', 'ipv6', 'unnumbered', 'config']

  def _get_enabled(self):
    """
    Getter method for enabled, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/unnumbered/config/enabled (boolean)

    YANG Description: Indicates that the subinterface is unnumbered.  By default
the subinterface is numbered, i.e., expected to have an
IP address configuration.
    """
    return self.__enabled
      
  def _set_enabled(self, v, load=False):
    """
    Setter method for enabled, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/unnumbered/config/enabled (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_enabled is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_enabled() directly.

    YANG Description: Indicates that the subinterface is unnumbered.  By default
the subinterface is numbered, i.e., expected to have an
IP address configuration.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """enabled must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)""",
        })

    self.__enabled = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_enabled(self):
    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)

  enabled = __builtin__.property(_get_enabled, _set_enabled)


  _pyangbind_elements = OrderedDict([('enabled', enabled), ])


class yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_unnumbered_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/tunnel/ipv6/unnumbered/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Operational state data for unnumbered interfaces
  """
  __slots__ = ('_path_helper', '_extmethods', '__enabled',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', 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 ['access-points', 'access-point', 'interfaces', 'interface', 'tunnel', 'ipv6', 'unnumbered', 'state']

  def _get_enabled(self):
    """
    Getter method for enabled, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/unnumbered/state/enabled (boolean)

    YANG Description: Indicates that the subinterface is unnumbered.  By default
the subinterface is numbered, i.e., expected to have an
IP address configuration.
    """
    return self.__enabled
      
  def _set_enabled(self, v, load=False):
    """
    Setter method for enabled, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/unnumbered/state/enabled (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_enabled is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_enabled() directly.

    YANG Description: Indicates that the subinterface is unnumbered.  By default
the subinterface is numbered, i.e., expected to have an
IP address configuration.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """enabled must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)""",
        })

    self.__enabled = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_enabled(self):
    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)

  enabled = __builtin__.property(_get_enabled)


  _pyangbind_elements = OrderedDict([('enabled', enabled), ])


class yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_unnumbered_interface_ref_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/tunnel/ipv6/unnumbered/interface-ref/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Configured reference to interface / subinterface
  """
  __slots__ = ('_path_helper', '_extmethods', '__interface','__subinterface',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__interface = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="interface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)
    self.__subinterface = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="subinterface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'tunnel', 'ipv6', 'unnumbered', 'interface-ref', 'config']

  def _get_interface(self):
    """
    Getter method for interface, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/unnumbered/interface_ref/config/interface (leafref)

    YANG Description: Reference to a base interface.  If a reference to a
subinterface is required, this leaf must be specified
to indicate the base interface.
    """
    return self.__interface
      
  def _set_interface(self, v, load=False):
    """
    Setter method for interface, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/unnumbered/interface_ref/config/interface (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_interface is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_interface() directly.

    YANG Description: Reference to a base interface.  If a reference to a
subinterface is required, this leaf must be specified
to indicate the base interface.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="interface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """interface must be of a type compatible with leafref""",
          'defined-type': "leafref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="interface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)""",
        })

    self.__interface = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_interface(self):
    self.__interface = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="interface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)


  def _get_subinterface(self):
    """
    Getter method for subinterface, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/unnumbered/interface_ref/config/subinterface (leafref)

    YANG Description: Reference to a subinterface -- this requires the base
interface to be specified using the interface leaf in
this container.  If only a reference to a base interface
is requuired, this leaf should not be set.
    """
    return self.__subinterface
      
  def _set_subinterface(self, v, load=False):
    """
    Setter method for subinterface, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/unnumbered/interface_ref/config/subinterface (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_subinterface is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_subinterface() directly.

    YANG Description: Reference to a subinterface -- this requires the base
interface to be specified using the interface leaf in
this container.  If only a reference to a base interface
is requuired, this leaf should not be set.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="subinterface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """subinterface must be of a type compatible with leafref""",
          'defined-type': "leafref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="subinterface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)""",
        })

    self.__subinterface = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_subinterface(self):
    self.__subinterface = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="subinterface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)

  interface = __builtin__.property(_get_interface, _set_interface)
  subinterface = __builtin__.property(_get_subinterface, _set_subinterface)


  _pyangbind_elements = OrderedDict([('interface', interface), ('subinterface', subinterface), ])


class yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_unnumbered_interface_ref_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/tunnel/ipv6/unnumbered/interface-ref/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Operational state for interface-ref
  """
  __slots__ = ('_path_helper', '_extmethods', '__interface','__subinterface',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__interface = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="interface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=False)
    self.__subinterface = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="subinterface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', 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 ['access-points', 'access-point', 'interfaces', 'interface', 'tunnel', 'ipv6', 'unnumbered', 'interface-ref', 'state']

  def _get_interface(self):
    """
    Getter method for interface, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/unnumbered/interface_ref/state/interface (leafref)

    YANG Description: Reference to a base interface.  If a reference to a
subinterface is required, this leaf must be specified
to indicate the base interface.
    """
    return self.__interface
      
  def _set_interface(self, v, load=False):
    """
    Setter method for interface, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/unnumbered/interface_ref/state/interface (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_interface is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_interface() directly.

    YANG Description: Reference to a base interface.  If a reference to a
subinterface is required, this leaf must be specified
to indicate the base interface.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="interface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """interface must be of a type compatible with leafref""",
          'defined-type': "leafref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="interface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=False)""",
        })

    self.__interface = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_interface(self):
    self.__interface = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="interface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=False)


  def _get_subinterface(self):
    """
    Getter method for subinterface, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/unnumbered/interface_ref/state/subinterface (leafref)

    YANG Description: Reference to a subinterface -- this requires the base
interface to be specified using the interface leaf in
this container.  If only a reference to a base interface
is requuired, this leaf should not be set.
    """
    return self.__subinterface
      
  def _set_subinterface(self, v, load=False):
    """
    Setter method for subinterface, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/unnumbered/interface_ref/state/subinterface (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_subinterface is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_subinterface() directly.

    YANG Description: Reference to a subinterface -- this requires the base
interface to be specified using the interface leaf in
this container.  If only a reference to a base interface
is requuired, this leaf should not be set.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="subinterface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """subinterface must be of a type compatible with leafref""",
          'defined-type': "leafref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="subinterface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=False)""",
        })

    self.__subinterface = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_subinterface(self):
    self.__subinterface = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="subinterface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=False)

  interface = __builtin__.property(_get_interface)
  subinterface = __builtin__.property(_get_subinterface)


  _pyangbind_elements = OrderedDict([('interface', interface), ('subinterface', subinterface), ])


class yc_interface_ref_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_unnumbered_interface_ref(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/tunnel/ipv6/unnumbered/interface-ref. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Reference to an interface or subinterface. The interface
that is being referenced is uniquely referenced based on
the specified interface and subinterface leaves. In contexts
where a Layer 3 interface is to be referenced, both the
interface and subinterface leaves must be populated, as
Layer 3 configuration within the OpenConfig models is
associated with a subinterface. In the case where a
Layer 2 interface is to be referenced, only the
interface is specified.

The interface/subinterface leaf tuple must be used as
the means by which the interface is specified, regardless
of any other context information (e.g., key in a list).
  """
  __slots__ = ('_path_helper', '_extmethods', '__config','__state',)

  _yang_name = 'interface-ref'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_unnumbered_interface_ref_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_unnumbered_interface_ref_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'tunnel', 'ipv6', 'unnumbered', 'interface-ref']

  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/unnumbered/interface_ref/config (container)

    YANG Description: Configured reference to interface / subinterface
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/unnumbered/interface_ref/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Configured reference to interface / subinterface
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_unnumbered_interface_ref_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_unnumbered_interface_ref_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_unnumbered_interface_ref_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/unnumbered/interface_ref/state (container)

    YANG Description: Operational state for interface-ref
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/unnumbered/interface_ref/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: Operational state for interface-ref
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_unnumbered_interface_ref_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_unnumbered_interface_ref_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_unnumbered_interface_ref_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)


  _pyangbind_elements = OrderedDict([('config', config), ('state', state), ])


class yc_unnumbered_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_unnumbered(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/tunnel/ipv6/unnumbered. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Top-level container for setting unnumbered interfaces.
Includes reference the interface that provides the
address information
  """
  __slots__ = ('_path_helper', '_extmethods', '__config','__state','__interface_ref',)

  _yang_name = 'unnumbered'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_unnumbered_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_unnumbered_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__interface_ref = YANGDynClass(base=yc_interface_ref_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_unnumbered_interface_ref, is_container='container', yang_name="interface-ref", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'tunnel', 'ipv6', 'unnumbered']

  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/unnumbered/config (container)

    YANG Description: Configuration data for unnumbered interface
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/unnumbered/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Configuration data for unnumbered interface
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_unnumbered_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_unnumbered_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_unnumbered_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/unnumbered/state (container)

    YANG Description: Operational state data for unnumbered interfaces
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/unnumbered/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: Operational state data for unnumbered interfaces
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_unnumbered_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_unnumbered_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_unnumbered_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_interface_ref(self):
    """
    Getter method for interface_ref, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/unnumbered/interface_ref (container)

    YANG Description: Reference to an interface or subinterface. The interface
that is being referenced is uniquely referenced based on
the specified interface and subinterface leaves. In contexts
where a Layer 3 interface is to be referenced, both the
interface and subinterface leaves must be populated, as
Layer 3 configuration within the OpenConfig models is
associated with a subinterface. In the case where a
Layer 2 interface is to be referenced, only the
interface is specified.

The interface/subinterface leaf tuple must be used as
the means by which the interface is specified, regardless
of any other context information (e.g., key in a list).
    """
    return self.__interface_ref
      
  def _set_interface_ref(self, v, load=False):
    """
    Setter method for interface_ref, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/unnumbered/interface_ref (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_interface_ref is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_interface_ref() directly.

    YANG Description: Reference to an interface or subinterface. The interface
that is being referenced is uniquely referenced based on
the specified interface and subinterface leaves. In contexts
where a Layer 3 interface is to be referenced, both the
interface and subinterface leaves must be populated, as
Layer 3 configuration within the OpenConfig models is
associated with a subinterface. In the case where a
Layer 2 interface is to be referenced, only the
interface is specified.

The interface/subinterface leaf tuple must be used as
the means by which the interface is specified, regardless
of any other context information (e.g., key in a list).
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_interface_ref_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_unnumbered_interface_ref, is_container='container', yang_name="interface-ref", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """interface_ref must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_interface_ref_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_unnumbered_interface_ref, is_container='container', yang_name="interface-ref", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

    self.__interface_ref = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_interface_ref(self):
    self.__interface_ref = YANGDynClass(base=yc_interface_ref_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_unnumbered_interface_ref, is_container='container', yang_name="interface-ref", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)
  interface_ref = __builtin__.property(_get_interface_ref, _set_interface_ref)


  _pyangbind_elements = OrderedDict([('config', config), ('state', state), ('interface_ref', interface_ref), ])


class yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/tunnel/ipv6/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Top-level config data for the IPv6 interface
  """
  __slots__ = ('_path_helper', '_extmethods', '__enabled','__mtu','__dup_addr_detect_transmits','__dhcp_client',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)
    self.__mtu = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), restriction_dict={'range': ['1280..max']}), is_leaf=True, yang_name="mtu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=True)
    self.__dup_addr_detect_transmits = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(1), is_leaf=True, yang_name="dup-addr-detect-transmits", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=True)
    self.__dhcp_client = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="dhcp-client", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'tunnel', 'ipv6', 'config']

  def _get_enabled(self):
    """
    Getter method for enabled, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/config/enabled (boolean)

    YANG Description: Controls whether IPv6 is enabled or disabled on this
interface.  When IPv6 is enabled, this interface is
connected to an IPv6 stack, and the interface can send
and receive IPv6 packets.
    """
    return self.__enabled
      
  def _set_enabled(self, v, load=False):
    """
    Setter method for enabled, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/config/enabled (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_enabled is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_enabled() directly.

    YANG Description: Controls whether IPv6 is enabled or disabled on this
interface.  When IPv6 is enabled, this interface is
connected to an IPv6 stack, and the interface can send
and receive IPv6 packets.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """enabled must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)""",
        })

    self.__enabled = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_enabled(self):
    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)


  def _get_mtu(self):
    """
    Getter method for mtu, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/config/mtu (uint32)

    YANG Description: The size, in octets, of the largest IPv6 packet that the
interface will send and receive.

The server may restrict the allowed values for this leaf,
depending on the interface's type.

If this leaf is not configured, the operationally used MTU
depends on the interface's type.
    """
    return self.__mtu
      
  def _set_mtu(self, v, load=False):
    """
    Setter method for mtu, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/config/mtu (uint32)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mtu is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mtu() directly.

    YANG Description: The size, in octets, of the largest IPv6 packet that the
interface will send and receive.

The server may restrict the allowed values for this leaf,
depending on the interface's type.

If this leaf is not configured, the operationally used MTU
depends on the interface's type.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), restriction_dict={'range': ['1280..max']}), is_leaf=True, yang_name="mtu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mtu must be of a type compatible with uint32""",
          'defined-type': "uint32",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), restriction_dict={'range': ['1280..max']}), is_leaf=True, yang_name="mtu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=True)""",
        })

    self.__mtu = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mtu(self):
    self.__mtu = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), restriction_dict={'range': ['1280..max']}), is_leaf=True, yang_name="mtu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=True)


  def _get_dup_addr_detect_transmits(self):
    """
    Getter method for dup_addr_detect_transmits, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/config/dup_addr_detect_transmits (uint32)

    YANG Description: The number of consecutive Neighbor Solicitation messages
sent while performing Duplicate Address Detection on a
tentative address.  A value of zero indicates that
Duplicate Address Detection is not performed on
tentative addresses.  A value of one indicates a single
transmission with no follow-up retransmissions.
    """
    return self.__dup_addr_detect_transmits
      
  def _set_dup_addr_detect_transmits(self, v, load=False):
    """
    Setter method for dup_addr_detect_transmits, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/config/dup_addr_detect_transmits (uint32)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dup_addr_detect_transmits is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dup_addr_detect_transmits() directly.

    YANG Description: The number of consecutive Neighbor Solicitation messages
sent while performing Duplicate Address Detection on a
tentative address.  A value of zero indicates that
Duplicate Address Detection is not performed on
tentative addresses.  A value of one indicates a single
transmission with no follow-up retransmissions.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(1), is_leaf=True, yang_name="dup-addr-detect-transmits", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dup_addr_detect_transmits must be of a type compatible with uint32""",
          'defined-type': "uint32",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(1), is_leaf=True, yang_name="dup-addr-detect-transmits", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=True)""",
        })

    self.__dup_addr_detect_transmits = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dup_addr_detect_transmits(self):
    self.__dup_addr_detect_transmits = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(1), is_leaf=True, yang_name="dup-addr-detect-transmits", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=True)


  def _get_dhcp_client(self):
    """
    Getter method for dhcp_client, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/config/dhcp_client (boolean)

    YANG Description: Enables a DHCP client on the interface in order to request
an address
    """
    return self.__dhcp_client
      
  def _set_dhcp_client(self, v, load=False):
    """
    Setter method for dhcp_client, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/config/dhcp_client (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dhcp_client is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dhcp_client() directly.

    YANG Description: Enables a DHCP client on the interface in order to request
an address
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="dhcp-client", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dhcp_client must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="dhcp-client", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)""",
        })

    self.__dhcp_client = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dhcp_client(self):
    self.__dhcp_client = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="dhcp-client", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=True)

  enabled = __builtin__.property(_get_enabled, _set_enabled)
  mtu = __builtin__.property(_get_mtu, _set_mtu)
  dup_addr_detect_transmits = __builtin__.property(_get_dup_addr_detect_transmits, _set_dup_addr_detect_transmits)
  dhcp_client = __builtin__.property(_get_dhcp_client, _set_dhcp_client)


  _pyangbind_elements = OrderedDict([('enabled', enabled), ('mtu', mtu), ('dup_addr_detect_transmits', dup_addr_detect_transmits), ('dhcp_client', dhcp_client), ])


class yc_counters_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_state_counters(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/tunnel/ipv6/state/counters. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Packet and byte counters for IP transmission and
reception for the address family.
  """
  __slots__ = ('_path_helper', '_extmethods', '__in_pkts','__in_octets','__in_error_pkts','__in_forwarded_pkts','__in_forwarded_octets','__in_discarded_pkts','__out_pkts','__out_octets','__out_error_pkts','__out_forwarded_pkts','__out_forwarded_octets','__out_discarded_pkts',)

  _yang_name = 'counters'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__in_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__in_octets = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__in_error_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-error-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__in_forwarded_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-forwarded-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__in_forwarded_octets = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-forwarded-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__in_discarded_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-discarded-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__out_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__out_octets = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__out_error_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-error-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__out_forwarded_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-forwarded-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__out_forwarded_octets = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-forwarded-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    self.__out_discarded_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-discarded-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', 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 ['access-points', 'access-point', 'interfaces', 'interface', 'tunnel', 'ipv6', 'state', 'counters']

  def _get_in_pkts(self):
    """
    Getter method for in_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/state/counters/in_pkts (oc-yang:counter64)

    YANG Description: The total number of IP packets received for the specified
address family, including those received in error
    """
    return self.__in_pkts
      
  def _set_in_pkts(self, v, load=False):
    """
    Setter method for in_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/state/counters/in_pkts (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_in_pkts is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_in_pkts() directly.

    YANG Description: The total number of IP packets received for the specified
address family, including those received in error
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """in_pkts must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__in_pkts = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_in_pkts(self):
    self.__in_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_in_octets(self):
    """
    Getter method for in_octets, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/state/counters/in_octets (oc-yang:counter64)

    YANG Description: The total number of octets received in input IP packets
for the specified address family, including those received
in error.
    """
    return self.__in_octets
      
  def _set_in_octets(self, v, load=False):
    """
    Setter method for in_octets, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/state/counters/in_octets (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_in_octets is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_in_octets() directly.

    YANG Description: The total number of octets received in input IP packets
for the specified address family, including those received
in error.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """in_octets must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__in_octets = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_in_octets(self):
    self.__in_octets = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_in_error_pkts(self):
    """
    Getter method for in_error_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/state/counters/in_error_pkts (oc-yang:counter64)

    YANG Description: Number of IP packets discarded due to errors for the
specified address family, including errors in the IP
header, no route found to the IP destination, invalid
address, unknown protocol, etc.
    """
    return self.__in_error_pkts
      
  def _set_in_error_pkts(self, v, load=False):
    """
    Setter method for in_error_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/state/counters/in_error_pkts (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_in_error_pkts is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_in_error_pkts() directly.

    YANG Description: Number of IP packets discarded due to errors for the
specified address family, including errors in the IP
header, no route found to the IP destination, invalid
address, unknown protocol, etc.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-error-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """in_error_pkts must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-error-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__in_error_pkts = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_in_error_pkts(self):
    self.__in_error_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-error-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_in_forwarded_pkts(self):
    """
    Getter method for in_forwarded_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/state/counters/in_forwarded_pkts (oc-yang:counter64)

    YANG Description: The number of input packets for which the device was not
their final IP destination and for which the device
attempted to find a route to forward them to that final
destination.
    """
    return self.__in_forwarded_pkts
      
  def _set_in_forwarded_pkts(self, v, load=False):
    """
    Setter method for in_forwarded_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/state/counters/in_forwarded_pkts (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_in_forwarded_pkts is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_in_forwarded_pkts() directly.

    YANG Description: The number of input packets for which the device was not
their final IP destination and for which the device
attempted to find a route to forward them to that final
destination.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-forwarded-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """in_forwarded_pkts must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-forwarded-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__in_forwarded_pkts = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_in_forwarded_pkts(self):
    self.__in_forwarded_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-forwarded-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_in_forwarded_octets(self):
    """
    Getter method for in_forwarded_octets, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/state/counters/in_forwarded_octets (oc-yang:counter64)

    YANG Description: The number of octets received in input IP packets
for the specified address family for which the device was
not their final IP destination and for which the
device attempted to find a route to forward them to that
final destination.
    """
    return self.__in_forwarded_octets
      
  def _set_in_forwarded_octets(self, v, load=False):
    """
    Setter method for in_forwarded_octets, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/state/counters/in_forwarded_octets (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_in_forwarded_octets is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_in_forwarded_octets() directly.

    YANG Description: The number of octets received in input IP packets
for the specified address family for which the device was
not their final IP destination and for which the
device attempted to find a route to forward them to that
final destination.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-forwarded-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """in_forwarded_octets must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-forwarded-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__in_forwarded_octets = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_in_forwarded_octets(self):
    self.__in_forwarded_octets = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-forwarded-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_in_discarded_pkts(self):
    """
    Getter method for in_discarded_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/state/counters/in_discarded_pkts (oc-yang:counter64)

    YANG Description: The number of input IP packets for the
specified address family, for which no problems were
encountered to prevent their continued processing, but
were discarded (e.g., for lack of buffer space).
    """
    return self.__in_discarded_pkts
      
  def _set_in_discarded_pkts(self, v, load=False):
    """
    Setter method for in_discarded_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/state/counters/in_discarded_pkts (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_in_discarded_pkts is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_in_discarded_pkts() directly.

    YANG Description: The number of input IP packets for the
specified address family, for which no problems were
encountered to prevent their continued processing, but
were discarded (e.g., for lack of buffer space).
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-discarded-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """in_discarded_pkts must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-discarded-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__in_discarded_pkts = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_in_discarded_pkts(self):
    self.__in_discarded_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-discarded-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_out_pkts(self):
    """
    Getter method for out_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/state/counters/out_pkts (oc-yang:counter64)

    YANG Description: The total number of IP packets for the
specified address family that the device supplied
to the lower layers for transmission.  This includes
packets generated locally and those forwarded by the
device.
    """
    return self.__out_pkts
      
  def _set_out_pkts(self, v, load=False):
    """
    Setter method for out_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/state/counters/out_pkts (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_out_pkts is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_out_pkts() directly.

    YANG Description: The total number of IP packets for the
specified address family that the device supplied
to the lower layers for transmission.  This includes
packets generated locally and those forwarded by the
device.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """out_pkts must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__out_pkts = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_out_pkts(self):
    self.__out_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_out_octets(self):
    """
    Getter method for out_octets, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/state/counters/out_octets (oc-yang:counter64)

    YANG Description: The total number of octets in IP packets for the
specified address family that the device
supplied to the lower layers for transmission.  This
includes packets generated locally and those forwarded by
the device.
    """
    return self.__out_octets
      
  def _set_out_octets(self, v, load=False):
    """
    Setter method for out_octets, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/state/counters/out_octets (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_out_octets is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_out_octets() directly.

    YANG Description: The total number of octets in IP packets for the
specified address family that the device
supplied to the lower layers for transmission.  This
includes packets generated locally and those forwarded by
the device.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """out_octets must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__out_octets = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_out_octets(self):
    self.__out_octets = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_out_error_pkts(self):
    """
    Getter method for out_error_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/state/counters/out_error_pkts (oc-yang:counter64)

    YANG Description: Number of IP packets for the specified address family
locally generated and discarded due to errors, including
no route found to the IP destination.
    """
    return self.__out_error_pkts
      
  def _set_out_error_pkts(self, v, load=False):
    """
    Setter method for out_error_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/state/counters/out_error_pkts (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_out_error_pkts is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_out_error_pkts() directly.

    YANG Description: Number of IP packets for the specified address family
locally generated and discarded due to errors, including
no route found to the IP destination.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-error-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """out_error_pkts must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-error-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__out_error_pkts = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_out_error_pkts(self):
    self.__out_error_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-error-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_out_forwarded_pkts(self):
    """
    Getter method for out_forwarded_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/state/counters/out_forwarded_pkts (oc-yang:counter64)

    YANG Description: The number of packets for which this entity was not their
final IP destination and for which it was successful in
finding a path to their final destination.
    """
    return self.__out_forwarded_pkts
      
  def _set_out_forwarded_pkts(self, v, load=False):
    """
    Setter method for out_forwarded_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/state/counters/out_forwarded_pkts (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_out_forwarded_pkts is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_out_forwarded_pkts() directly.

    YANG Description: The number of packets for which this entity was not their
final IP destination and for which it was successful in
finding a path to their final destination.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-forwarded-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """out_forwarded_pkts must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-forwarded-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__out_forwarded_pkts = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_out_forwarded_pkts(self):
    self.__out_forwarded_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-forwarded-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_out_forwarded_octets(self):
    """
    Getter method for out_forwarded_octets, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/state/counters/out_forwarded_octets (oc-yang:counter64)

    YANG Description: The number of octets in packets for which this entity was
not their final IP destination and for which it was
successful in finding a path to their final destination.
    """
    return self.__out_forwarded_octets
      
  def _set_out_forwarded_octets(self, v, load=False):
    """
    Setter method for out_forwarded_octets, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/state/counters/out_forwarded_octets (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_out_forwarded_octets is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_out_forwarded_octets() directly.

    YANG Description: The number of octets in packets for which this entity was
not their final IP destination and for which it was
successful in finding a path to their final destination.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-forwarded-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """out_forwarded_octets must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-forwarded-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__out_forwarded_octets = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_out_forwarded_octets(self):
    self.__out_forwarded_octets = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-forwarded-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)


  def _get_out_discarded_pkts(self):
    """
    Getter method for out_discarded_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/state/counters/out_discarded_pkts (oc-yang:counter64)

    YANG Description: The number of output IP packets for the
specified address family for which no problem was
encountered to prevent their transmission to their
destination, but were discarded (e.g., for lack of
buffer space).
    """
    return self.__out_discarded_pkts
      
  def _set_out_discarded_pkts(self, v, load=False):
    """
    Setter method for out_discarded_pkts, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/state/counters/out_discarded_pkts (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_out_discarded_pkts is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_out_discarded_pkts() directly.

    YANG Description: The number of output IP packets for the
specified address family for which no problem was
encountered to prevent their transmission to their
destination, but were discarded (e.g., for lack of
buffer space).
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-discarded-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """out_discarded_pkts must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-discarded-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__out_discarded_pkts = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_out_discarded_pkts(self):
    self.__out_discarded_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-discarded-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='oc-yang:counter64', is_config=False)

  in_pkts = __builtin__.property(_get_in_pkts)
  in_octets = __builtin__.property(_get_in_octets)
  in_error_pkts = __builtin__.property(_get_in_error_pkts)
  in_forwarded_pkts = __builtin__.property(_get_in_forwarded_pkts)
  in_forwarded_octets = __builtin__.property(_get_in_forwarded_octets)
  in_discarded_pkts = __builtin__.property(_get_in_discarded_pkts)
  out_pkts = __builtin__.property(_get_out_pkts)
  out_octets = __builtin__.property(_get_out_octets)
  out_error_pkts = __builtin__.property(_get_out_error_pkts)
  out_forwarded_pkts = __builtin__.property(_get_out_forwarded_pkts)
  out_forwarded_octets = __builtin__.property(_get_out_forwarded_octets)
  out_discarded_pkts = __builtin__.property(_get_out_discarded_pkts)


  _pyangbind_elements = OrderedDict([('in_pkts', in_pkts), ('in_octets', in_octets), ('in_error_pkts', in_error_pkts), ('in_forwarded_pkts', in_forwarded_pkts), ('in_forwarded_octets', in_forwarded_octets), ('in_discarded_pkts', in_discarded_pkts), ('out_pkts', out_pkts), ('out_octets', out_octets), ('out_error_pkts', out_error_pkts), ('out_forwarded_pkts', out_forwarded_pkts), ('out_forwarded_octets', out_forwarded_octets), ('out_discarded_pkts', out_discarded_pkts), ])


class yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/tunnel/ipv6/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Top-level operational state data for the IPv6 interface
  """
  __slots__ = ('_path_helper', '_extmethods', '__enabled','__mtu','__dup_addr_detect_transmits','__dhcp_client','__counters',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)
    self.__mtu = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), restriction_dict={'range': ['1280..max']}), is_leaf=True, yang_name="mtu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=False)
    self.__dup_addr_detect_transmits = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(1), is_leaf=True, yang_name="dup-addr-detect-transmits", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=False)
    self.__dhcp_client = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="dhcp-client", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)
    self.__counters = YANGDynClass(base=yc_counters_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_state_counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', 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 ['access-points', 'access-point', 'interfaces', 'interface', 'tunnel', 'ipv6', 'state']

  def _get_enabled(self):
    """
    Getter method for enabled, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/state/enabled (boolean)

    YANG Description: Controls whether IPv6 is enabled or disabled on this
interface.  When IPv6 is enabled, this interface is
connected to an IPv6 stack, and the interface can send
and receive IPv6 packets.
    """
    return self.__enabled
      
  def _set_enabled(self, v, load=False):
    """
    Setter method for enabled, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/state/enabled (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_enabled is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_enabled() directly.

    YANG Description: Controls whether IPv6 is enabled or disabled on this
interface.  When IPv6 is enabled, this interface is
connected to an IPv6 stack, and the interface can send
and receive IPv6 packets.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """enabled must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)""",
        })

    self.__enabled = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_enabled(self):
    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)


  def _get_mtu(self):
    """
    Getter method for mtu, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/state/mtu (uint32)

    YANG Description: The size, in octets, of the largest IPv6 packet that the
interface will send and receive.

The server may restrict the allowed values for this leaf,
depending on the interface's type.

If this leaf is not configured, the operationally used MTU
depends on the interface's type.
    """
    return self.__mtu
      
  def _set_mtu(self, v, load=False):
    """
    Setter method for mtu, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/state/mtu (uint32)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mtu is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mtu() directly.

    YANG Description: The size, in octets, of the largest IPv6 packet that the
interface will send and receive.

The server may restrict the allowed values for this leaf,
depending on the interface's type.

If this leaf is not configured, the operationally used MTU
depends on the interface's type.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), restriction_dict={'range': ['1280..max']}), is_leaf=True, yang_name="mtu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mtu must be of a type compatible with uint32""",
          'defined-type': "uint32",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), restriction_dict={'range': ['1280..max']}), is_leaf=True, yang_name="mtu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=False)""",
        })

    self.__mtu = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mtu(self):
    self.__mtu = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), restriction_dict={'range': ['1280..max']}), is_leaf=True, yang_name="mtu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=False)


  def _get_dup_addr_detect_transmits(self):
    """
    Getter method for dup_addr_detect_transmits, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/state/dup_addr_detect_transmits (uint32)

    YANG Description: The number of consecutive Neighbor Solicitation messages
sent while performing Duplicate Address Detection on a
tentative address.  A value of zero indicates that
Duplicate Address Detection is not performed on
tentative addresses.  A value of one indicates a single
transmission with no follow-up retransmissions.
    """
    return self.__dup_addr_detect_transmits
      
  def _set_dup_addr_detect_transmits(self, v, load=False):
    """
    Setter method for dup_addr_detect_transmits, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/state/dup_addr_detect_transmits (uint32)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dup_addr_detect_transmits is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dup_addr_detect_transmits() directly.

    YANG Description: The number of consecutive Neighbor Solicitation messages
sent while performing Duplicate Address Detection on a
tentative address.  A value of zero indicates that
Duplicate Address Detection is not performed on
tentative addresses.  A value of one indicates a single
transmission with no follow-up retransmissions.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(1), is_leaf=True, yang_name="dup-addr-detect-transmits", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dup_addr_detect_transmits must be of a type compatible with uint32""",
          'defined-type': "uint32",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(1), is_leaf=True, yang_name="dup-addr-detect-transmits", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=False)""",
        })

    self.__dup_addr_detect_transmits = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dup_addr_detect_transmits(self):
    self.__dup_addr_detect_transmits = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(1), is_leaf=True, yang_name="dup-addr-detect-transmits", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='uint32', is_config=False)


  def _get_dhcp_client(self):
    """
    Getter method for dhcp_client, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/state/dhcp_client (boolean)

    YANG Description: Enables a DHCP client on the interface in order to request
an address
    """
    return self.__dhcp_client
      
  def _set_dhcp_client(self, v, load=False):
    """
    Setter method for dhcp_client, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/state/dhcp_client (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dhcp_client is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dhcp_client() directly.

    YANG Description: Enables a DHCP client on the interface in order to request
an address
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="dhcp-client", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dhcp_client must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="dhcp-client", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)""",
        })

    self.__dhcp_client = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dhcp_client(self):
    self.__dhcp_client = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="dhcp-client", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='boolean', is_config=False)


  def _get_counters(self):
    """
    Getter method for counters, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/state/counters (container)

    YANG Description: Packet and byte counters for IP transmission and
reception for the address family.
    """
    return self.__counters
      
  def _set_counters(self, v, load=False):
    """
    Setter method for counters, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/state/counters (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_counters is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_counters() directly.

    YANG Description: Packet and byte counters for IP transmission and
reception for the address family.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_counters_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_state_counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """counters must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_counters_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_state_counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=False)""",
        })

    self.__counters = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_counters(self):
    self.__counters = YANGDynClass(base=yc_counters_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_state_counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=False)

  enabled = __builtin__.property(_get_enabled)
  mtu = __builtin__.property(_get_mtu)
  dup_addr_detect_transmits = __builtin__.property(_get_dup_addr_detect_transmits)
  dhcp_client = __builtin__.property(_get_dhcp_client)
  counters = __builtin__.property(_get_counters)


  _pyangbind_elements = OrderedDict([('enabled', enabled), ('mtu', mtu), ('dup_addr_detect_transmits', dup_addr_detect_transmits), ('dhcp_client', dhcp_client), ('counters', counters), ])


class yc_ipv6_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/tunnel/ipv6. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Parameters for the IPv6 address family.
  """
  __slots__ = ('_path_helper', '_extmethods', '__addresses','__router_advertisement','__neighbors','__unnumbered','__config','__state',)

  _yang_name = 'ipv6'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__addresses = YANGDynClass(base=yc_addresses_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_addresses, is_container='container', yang_name="addresses", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__router_advertisement = YANGDynClass(base=yc_router_advertisement_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_router_advertisement, is_container='container', yang_name="router-advertisement", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__neighbors = YANGDynClass(base=yc_neighbors_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_neighbors, is_container='container', yang_name="neighbors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__unnumbered = YANGDynClass(base=yc_unnumbered_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_unnumbered, is_container='container', yang_name="unnumbered", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'tunnel', 'ipv6']

  def _get_addresses(self):
    """
    Getter method for addresses, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/addresses (container)

    YANG Description: Enclosing container for address list
    """
    return self.__addresses
      
  def _set_addresses(self, v, load=False):
    """
    Setter method for addresses, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/addresses (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_addresses is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_addresses() directly.

    YANG Description: Enclosing container for address list
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_addresses_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_addresses, is_container='container', yang_name="addresses", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """addresses must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_addresses_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_addresses, is_container='container', yang_name="addresses", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

    self.__addresses = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_addresses(self):
    self.__addresses = YANGDynClass(base=yc_addresses_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_addresses, is_container='container', yang_name="addresses", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_router_advertisement(self):
    """
    Getter method for router_advertisement, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/router_advertisement (container)

    YANG Description: Configuration and operational state parameters relating to
router advertisements.
    """
    return self.__router_advertisement
      
  def _set_router_advertisement(self, v, load=False):
    """
    Setter method for router_advertisement, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/router_advertisement (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_router_advertisement is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_router_advertisement() directly.

    YANG Description: Configuration and operational state parameters relating to
router advertisements.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_router_advertisement_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_router_advertisement, is_container='container', yang_name="router-advertisement", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """router_advertisement must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_router_advertisement_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_router_advertisement, is_container='container', yang_name="router-advertisement", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

    self.__router_advertisement = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_router_advertisement(self):
    self.__router_advertisement = YANGDynClass(base=yc_router_advertisement_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_router_advertisement, is_container='container', yang_name="router-advertisement", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_neighbors(self):
    """
    Getter method for neighbors, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/neighbors (container)

    YANG Description: Enclosing container for list of IPv6 neighbors
    """
    return self.__neighbors
      
  def _set_neighbors(self, v, load=False):
    """
    Setter method for neighbors, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/neighbors (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_neighbors is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_neighbors() directly.

    YANG Description: Enclosing container for list of IPv6 neighbors
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_neighbors_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_neighbors, is_container='container', yang_name="neighbors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """neighbors must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_neighbors_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_neighbors, is_container='container', yang_name="neighbors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

    self.__neighbors = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_neighbors(self):
    self.__neighbors = YANGDynClass(base=yc_neighbors_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_neighbors, is_container='container', yang_name="neighbors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_unnumbered(self):
    """
    Getter method for unnumbered, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/unnumbered (container)

    YANG Description: Top-level container for setting unnumbered interfaces.
Includes reference the interface that provides the
address information
    """
    return self.__unnumbered
      
  def _set_unnumbered(self, v, load=False):
    """
    Setter method for unnumbered, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/unnumbered (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_unnumbered is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_unnumbered() directly.

    YANG Description: Top-level container for setting unnumbered interfaces.
Includes reference the interface that provides the
address information
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_unnumbered_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_unnumbered, is_container='container', yang_name="unnumbered", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """unnumbered must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_unnumbered_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_unnumbered, is_container='container', yang_name="unnumbered", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

    self.__unnumbered = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_unnumbered(self):
    self.__unnumbered = YANGDynClass(base=yc_unnumbered_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_unnumbered, is_container='container', yang_name="unnumbered", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/config (container)

    YANG Description: Top-level config data for the IPv6 interface
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Top-level config data for the IPv6 interface
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/state (container)

    YANG Description: Top-level operational state data for the IPv6 interface
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6/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: Top-level operational state data for the IPv6 interface
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

  addresses = __builtin__.property(_get_addresses, _set_addresses)
  router_advertisement = __builtin__.property(_get_router_advertisement, _set_router_advertisement)
  neighbors = __builtin__.property(_get_neighbors, _set_neighbors)
  unnumbered = __builtin__.property(_get_unnumbered, _set_unnumbered)
  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)


  _pyangbind_elements = OrderedDict([('addresses', addresses), ('router_advertisement', router_advertisement), ('neighbors', neighbors), ('unnumbered', unnumbered), ('config', config), ('state', state), ])


class yc_tunnel_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface/tunnel. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: In the case that the interface is logical tunnel
interface, the parameters for the tunnel are
specified within this subtree. Tunnel interfaces
have only a single logical subinterface associated
with them.
  """
  __slots__ = ('_path_helper', '_extmethods', '__config','__state','__ipv4','__ipv6',)

  _yang_name = 'tunnel'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__ipv4 = YANGDynClass(base=yc_ipv4_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4, is_container='container', yang_name="ipv4", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__ipv6 = YANGDynClass(base=yc_ipv6_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6, is_container='container', yang_name="ipv6", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface', 'tunnel']

  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/config (container)

    YANG Description: Configuration parameters associated with the
tunnel interface
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Configuration parameters associated with the
tunnel interface
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/state (container)

    YANG Description: Operational state parameters associated with
the tunnel interface.
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/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: Operational state parameters associated with
the tunnel interface.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_ipv4(self):
    """
    Getter method for ipv4, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4 (container)

    YANG Description: Parameters for the IPv4 address family.
    """
    return self.__ipv4
      
  def _set_ipv4(self, v, load=False):
    """
    Setter method for ipv4, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv4 (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ipv4 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ipv4() directly.

    YANG Description: Parameters for the IPv4 address family.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_ipv4_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4, is_container='container', yang_name="ipv4", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ipv4 must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_ipv4_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4, is_container='container', yang_name="ipv4", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

    self.__ipv4 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ipv4(self):
    self.__ipv4 = YANGDynClass(base=yc_ipv4_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv4, is_container='container', yang_name="ipv4", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_ipv6(self):
    """
    Getter method for ipv6, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6 (container)

    YANG Description: Parameters for the IPv6 address family.
    """
    return self.__ipv6
      
  def _set_ipv6(self, v, load=False):
    """
    Setter method for ipv6, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel/ipv6 (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ipv6 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ipv6() directly.

    YANG Description: Parameters for the IPv6 address family.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_ipv6_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6, is_container='container', yang_name="ipv6", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ipv6 must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_ipv6_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6, is_container='container', yang_name="ipv6", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

    self.__ipv6 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ipv6(self):
    self.__ipv6 = YANGDynClass(base=yc_ipv6_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel_ipv6, is_container='container', yang_name="ipv6", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)
  ipv4 = __builtin__.property(_get_ipv4, _set_ipv4)
  ipv6 = __builtin__.property(_get_ipv6, _set_ipv6)


  _pyangbind_elements = OrderedDict([('config', config), ('state', state), ('ipv4', ipv4), ('ipv6', ipv6), ])


class yc_interface_openconfig_access_points__access_points_access_point_interfaces_interface(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces/interface. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: The list of named interfaces on the device.
  """
  __slots__ = ('_path_helper', '_extmethods', '__name','__config','__state','__ethernet','__subinterfaces','__aggregation','__tunnel',)

  _yang_name = 'interface'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__ethernet = YANGDynClass(base=yc_ethernet_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet, is_container='container', yang_name="ethernet", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__subinterfaces = YANGDynClass(base=yc_subinterfaces_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces, is_container='container', yang_name="subinterfaces", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__aggregation = YANGDynClass(base=yc_aggregation_openconfig_access_points__access_points_access_point_interfaces_interface_aggregation, is_container='container', yang_name="aggregation", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    self.__tunnel = YANGDynClass(base=yc_tunnel_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel, is_container='container', yang_name="tunnel", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

    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 ['access-points', 'access-point', 'interfaces', 'interface']

  def _get_name(self):
    """
    Getter method for name, mapped from YANG variable /access_points/access_point/interfaces/interface/name (leafref)

    YANG Description: References the name of the interface.
    """
    return self.__name
      
  def _set_name(self, v, load=False):
    """
    Setter method for name, mapped from YANG variable /access_points/access_point/interfaces/interface/name (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_name is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_name() directly.

    YANG Description: References the name of the interface.
    """
    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="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """name must be of a type compatible with leafref""",
          'defined-type': "leafref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)""",
        })

    self.__name = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_name(self):
    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='leafref', is_config=True)


  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/config (container)

    YANG Description: Configurable items at the global, physical interface
level.
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/interfaces/interface/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Configurable items at the global, physical interface
level.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_interfaces_interface_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/state (container)

    YANG Description: Operational state data at the global interface level.
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/interfaces/interface/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: Operational state data at the global interface level.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_interfaces_interface_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/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_ethernet(self):
    """
    Getter method for ethernet, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet (container)

    YANG Description: Top-level container for ethernet configuration
and state
    """
    return self.__ethernet
      
  def _set_ethernet(self, v, load=False):
    """
    Setter method for ethernet, mapped from YANG variable /access_points/access_point/interfaces/interface/ethernet (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ethernet is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ethernet() directly.

    YANG Description: Top-level container for ethernet configuration
and state
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_ethernet_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet, is_container='container', yang_name="ethernet", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ethernet must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_ethernet_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet, is_container='container', yang_name="ethernet", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

    self.__ethernet = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ethernet(self):
    self.__ethernet = YANGDynClass(base=yc_ethernet_openconfig_access_points__access_points_access_point_interfaces_interface_ethernet, is_container='container', yang_name="ethernet", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_subinterfaces(self):
    """
    Getter method for subinterfaces, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces (container)

    YANG Description: Enclosing container for the list of subinterfaces associated
with a physical interface
    """
    return self.__subinterfaces
      
  def _set_subinterfaces(self, v, load=False):
    """
    Setter method for subinterfaces, mapped from YANG variable /access_points/access_point/interfaces/interface/subinterfaces (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_subinterfaces is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_subinterfaces() directly.

    YANG Description: Enclosing container for the list of subinterfaces associated
with a physical interface
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_subinterfaces_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces, is_container='container', yang_name="subinterfaces", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """subinterfaces must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_subinterfaces_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces, is_container='container', yang_name="subinterfaces", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

    self.__subinterfaces = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_subinterfaces(self):
    self.__subinterfaces = YANGDynClass(base=yc_subinterfaces_openconfig_access_points__access_points_access_point_interfaces_interface_subinterfaces, is_container='container', yang_name="subinterfaces", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_aggregation(self):
    """
    Getter method for aggregation, mapped from YANG variable /access_points/access_point/interfaces/interface/aggregation (container)

    YANG Description: Options for logical interfaces representing
aggregates
    """
    return self.__aggregation
      
  def _set_aggregation(self, v, load=False):
    """
    Setter method for aggregation, mapped from YANG variable /access_points/access_point/interfaces/interface/aggregation (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_aggregation is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_aggregation() directly.

    YANG Description: Options for logical interfaces representing
aggregates
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_aggregation_openconfig_access_points__access_points_access_point_interfaces_interface_aggregation, is_container='container', yang_name="aggregation", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """aggregation must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_aggregation_openconfig_access_points__access_points_access_point_interfaces_interface_aggregation, is_container='container', yang_name="aggregation", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

    self.__aggregation = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_aggregation(self):
    self.__aggregation = YANGDynClass(base=yc_aggregation_openconfig_access_points__access_points_access_point_interfaces_interface_aggregation, is_container='container', yang_name="aggregation", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)


  def _get_tunnel(self):
    """
    Getter method for tunnel, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel (container)

    YANG Description: In the case that the interface is logical tunnel
interface, the parameters for the tunnel are
specified within this subtree. Tunnel interfaces
have only a single logical subinterface associated
with them.
    """
    return self.__tunnel
      
  def _set_tunnel(self, v, load=False):
    """
    Setter method for tunnel, mapped from YANG variable /access_points/access_point/interfaces/interface/tunnel (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tunnel is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tunnel() directly.

    YANG Description: In the case that the interface is logical tunnel
interface, the parameters for the tunnel are
specified within this subtree. Tunnel interfaces
have only a single logical subinterface associated
with them.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_tunnel_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel, is_container='container', yang_name="tunnel", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tunnel must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_tunnel_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel, is_container='container', yang_name="tunnel", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

    self.__tunnel = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_tunnel(self):
    self.__tunnel = YANGDynClass(base=yc_tunnel_openconfig_access_points__access_points_access_point_interfaces_interface_tunnel, is_container='container', yang_name="tunnel", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

  name = __builtin__.property(_get_name, _set_name)
  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)
  ethernet = __builtin__.property(_get_ethernet, _set_ethernet)
  subinterfaces = __builtin__.property(_get_subinterfaces, _set_subinterfaces)
  aggregation = __builtin__.property(_get_aggregation, _set_aggregation)
  tunnel = __builtin__.property(_get_tunnel, _set_tunnel)


  _pyangbind_elements = OrderedDict([('name', name), ('config', config), ('state', state), ('ethernet', ethernet), ('subinterfaces', subinterfaces), ('aggregation', aggregation), ('tunnel', tunnel), ])


class yc_interfaces_openconfig_access_points__access_points_access_point_interfaces(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point/interfaces. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Top level container for non-radio AP interfaces, including
configuration and state data.
  """
  __slots__ = ('_path_helper', '_extmethods', '__interface',)

  _yang_name = 'interfaces'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__interface = YANGDynClass(base=YANGListType("name",yc_interface_openconfig_access_points__access_points_access_point_interfaces_interface, yang_name="interface", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="interface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='list', is_config=True)

    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 ['access-points', 'access-point', 'interfaces']

  def _get_interface(self):
    """
    Getter method for interface, mapped from YANG variable /access_points/access_point/interfaces/interface (list)

    YANG Description: The list of named interfaces on the device.
    """
    return self.__interface
      
  def _set_interface(self, v, load=False):
    """
    Setter method for interface, mapped from YANG variable /access_points/access_point/interfaces/interface (list)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_interface is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_interface() directly.

    YANG Description: The list of named interfaces on the device.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGListType("name",yc_interface_openconfig_access_points__access_points_access_point_interfaces_interface, yang_name="interface", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="interface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='list', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """interface must be of a type compatible with list""",
          'defined-type': "list",
          'generated-type': """YANGDynClass(base=YANGListType("name",yc_interface_openconfig_access_points__access_points_access_point_interfaces_interface, yang_name="interface", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="interface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='list', is_config=True)""",
        })

    self.__interface = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_interface(self):
    self.__interface = YANGDynClass(base=YANGListType("name",yc_interface_openconfig_access_points__access_points_access_point_interfaces_interface, yang_name="interface", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="interface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='list', is_config=True)

  interface = __builtin__.property(_get_interface, _set_interface)


  _pyangbind_elements = OrderedDict([('interface', interface), ])


class yc_access_point_openconfig_access_points__access_points_access_point(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points/access-point. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Configuration and state data for the access point referenced in the
list entry.
  """
  __slots__ = ('_path_helper', '_extmethods', '__hostname','__config','__state','__radios','__ssids','__system','__assigned_ap_managers','__interfaces',)

  _yang_name = 'access-point'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__hostname = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="hostname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__radios = YANGDynClass(base=yc_radios_openconfig_access_points__access_points_access_point_radios, is_container='container', yang_name="radios", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__ssids = YANGDynClass(base=yc_ssids_openconfig_access_points__access_points_access_point_ssids, is_container='container', yang_name="ssids", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__system = YANGDynClass(base=yc_system_openconfig_access_points__access_points_access_point_system, is_container='container', yang_name="system", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__assigned_ap_managers = YANGDynClass(base=yc_assigned_ap_managers_openconfig_access_points__access_points_access_point_assigned_ap_managers, is_container='container', yang_name="assigned-ap-managers", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    self.__interfaces = YANGDynClass(base=yc_interfaces_openconfig_access_points__access_points_access_point_interfaces, is_container='container', yang_name="interfaces", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

    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 ['access-points', 'access-point']

  def _get_hostname(self):
    """
    Getter method for hostname, mapped from YANG variable /access_points/access_point/hostname (leafref)

    YANG Description: Access Point FQDN.
    """
    return self.__hostname
      
  def _set_hostname(self, v, load=False):
    """
    Setter method for hostname, mapped from YANG variable /access_points/access_point/hostname (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_hostname is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_hostname() directly.

    YANG Description: Access Point FQDN.
    """
    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="hostname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """hostname must be of a type compatible with leafref""",
          'defined-type': "leafref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="hostname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)""",
        })

    self.__hostname = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_hostname(self):
    self.__hostname = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="hostname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='leafref', is_config=True)


  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /access_points/access_point/config (container)

    YANG Description: Config items at the global, Access Point level.
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /access_points/access_point/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Config items at the global, Access Point level.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_access_points__access_points_access_point_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_access_points__access_points_access_point_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /access_points/access_point/state (container)

    YANG Description: State items at the global, Access Point level.
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /access_points/access_point/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 items at the global, Access Point level.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_access_points__access_points_access_point_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_access_points__access_points_access_point_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/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_radios(self):
    """
    Getter method for radios, mapped from YANG variable /access_points/access_point/radios (container)

    YANG Description: Top level container for radios, including configuration
and state data.
    """
    return self.__radios
      
  def _set_radios(self, v, load=False):
    """
    Setter method for radios, mapped from YANG variable /access_points/access_point/radios (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_radios is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_radios() directly.

    YANG Description: Top level container for radios, including configuration
and state data.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_radios_openconfig_access_points__access_points_access_point_radios, is_container='container', yang_name="radios", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """radios must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_radios_openconfig_access_points__access_points_access_point_radios, is_container='container', yang_name="radios", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__radios = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_radios(self):
    self.__radios = YANGDynClass(base=yc_radios_openconfig_access_points__access_points_access_point_radios, is_container='container', yang_name="radios", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_ssids(self):
    """
    Getter method for ssids, mapped from YANG variable /access_points/access_point/ssids (container)

    YANG Description: Top level container for SSIDs, including configuration
and state data.
    """
    return self.__ssids
      
  def _set_ssids(self, v, load=False):
    """
    Setter method for ssids, mapped from YANG variable /access_points/access_point/ssids (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ssids is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ssids() directly.

    YANG Description: Top level container for SSIDs, including configuration
and state data.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_ssids_openconfig_access_points__access_points_access_point_ssids, is_container='container', yang_name="ssids", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ssids must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_ssids_openconfig_access_points__access_points_access_point_ssids, is_container='container', yang_name="ssids", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__ssids = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ssids(self):
    self.__ssids = YANGDynClass(base=yc_ssids_openconfig_access_points__access_points_access_point_ssids, is_container='container', yang_name="ssids", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_system(self):
    """
    Getter method for system, mapped from YANG variable /access_points/access_point/system (container)

    YANG Description: Enclosing container for system-related configuration and
operational state data
    """
    return self.__system
      
  def _set_system(self, v, load=False):
    """
    Setter method for system, mapped from YANG variable /access_points/access_point/system (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_system is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_system() directly.

    YANG Description: Enclosing container for system-related configuration and
operational state data
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_system_openconfig_access_points__access_points_access_point_system, is_container='container', yang_name="system", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """system must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_system_openconfig_access_points__access_points_access_point_system, is_container='container', yang_name="system", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__system = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_system(self):
    self.__system = YANGDynClass(base=yc_system_openconfig_access_points__access_points_access_point_system, is_container='container', yang_name="system", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_assigned_ap_managers(self):
    """
    Getter method for assigned_ap_managers, mapped from YANG variable /access_points/access_point/assigned_ap_managers (container)

    YANG Description: Wireless manager(s) this AP is assigned to. eg. Primary
Secondary, Tertiary etc.
    """
    return self.__assigned_ap_managers
      
  def _set_assigned_ap_managers(self, v, load=False):
    """
    Setter method for assigned_ap_managers, mapped from YANG variable /access_points/access_point/assigned_ap_managers (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_assigned_ap_managers is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_assigned_ap_managers() directly.

    YANG Description: Wireless manager(s) this AP is assigned to. eg. Primary
Secondary, Tertiary etc.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_assigned_ap_managers_openconfig_access_points__access_points_access_point_assigned_ap_managers, is_container='container', yang_name="assigned-ap-managers", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """assigned_ap_managers must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_assigned_ap_managers_openconfig_access_points__access_points_access_point_assigned_ap_managers, is_container='container', yang_name="assigned-ap-managers", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__assigned_ap_managers = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_assigned_ap_managers(self):
    self.__assigned_ap_managers = YANGDynClass(base=yc_assigned_ap_managers_openconfig_access_points__access_points_access_point_assigned_ap_managers, is_container='container', yang_name="assigned-ap-managers", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)


  def _get_interfaces(self):
    """
    Getter method for interfaces, mapped from YANG variable /access_points/access_point/interfaces (container)

    YANG Description: Top level container for non-radio AP interfaces, including
configuration and state data.
    """
    return self.__interfaces
      
  def _set_interfaces(self, v, load=False):
    """
    Setter method for interfaces, mapped from YANG variable /access_points/access_point/interfaces (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_interfaces is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_interfaces() directly.

    YANG Description: Top level container for non-radio AP interfaces, including
configuration and state data.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_interfaces_openconfig_access_points__access_points_access_point_interfaces, is_container='container', yang_name="interfaces", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """interfaces must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_interfaces_openconfig_access_points__access_points_access_point_interfaces, is_container='container', yang_name="interfaces", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)""",
        })

    self.__interfaces = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_interfaces(self):
    self.__interfaces = YANGDynClass(base=yc_interfaces_openconfig_access_points__access_points_access_point_interfaces, is_container='container', yang_name="interfaces", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/ap-interfaces', defining_module='openconfig-ap-interfaces', yang_type='container', is_config=True)

  hostname = __builtin__.property(_get_hostname, _set_hostname)
  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)
  radios = __builtin__.property(_get_radios, _set_radios)
  ssids = __builtin__.property(_get_ssids, _set_ssids)
  system = __builtin__.property(_get_system, _set_system)
  assigned_ap_managers = __builtin__.property(_get_assigned_ap_managers, _set_assigned_ap_managers)
  interfaces = __builtin__.property(_get_interfaces, _set_interfaces)


  _pyangbind_elements = OrderedDict([('hostname', hostname), ('config', config), ('state', state), ('radios', radios), ('ssids', ssids), ('system', system), ('assigned_ap_managers', assigned_ap_managers), ('interfaces', interfaces), ])


class yc_access_points_openconfig_access_points__access_points(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /access-points. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Top most container for configuration and state data for Access
Points.
  """
  __slots__ = ('_path_helper', '_extmethods', '__access_point',)

  _yang_name = 'access-points'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__access_point = YANGDynClass(base=YANGListType("hostname",yc_access_point_openconfig_access_points__access_points_access_point, yang_name="access-point", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='hostname', extensions=None), is_container='list', yang_name="access-point", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)

    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 ['access-points']

  def _get_access_point(self):
    """
    Getter method for access_point, mapped from YANG variable /access_points/access_point (list)

    YANG Description: Configuration and state data for the access point referenced in the
list entry.
    """
    return self.__access_point
      
  def _set_access_point(self, v, load=False):
    """
    Setter method for access_point, mapped from YANG variable /access_points/access_point (list)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_access_point is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_access_point() directly.

    YANG Description: Configuration and state data for the access point referenced in the
list entry.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGListType("hostname",yc_access_point_openconfig_access_points__access_points_access_point, yang_name="access-point", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='hostname', extensions=None), is_container='list', yang_name="access-point", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """access_point must be of a type compatible with list""",
          'defined-type': "list",
          'generated-type': """YANGDynClass(base=YANGListType("hostname",yc_access_point_openconfig_access_points__access_points_access_point, yang_name="access-point", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='hostname', extensions=None), is_container='list', yang_name="access-point", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)""",
        })

    self.__access_point = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_access_point(self):
    self.__access_point = YANGDynClass(base=YANGListType("hostname",yc_access_point_openconfig_access_points__access_points_access_point, yang_name="access-point", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='hostname', extensions=None), is_container='list', yang_name="access-point", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='list', is_config=True)

  access_point = __builtin__.property(_get_access_point, _set_access_point)


  _pyangbind_elements = OrderedDict([('access_point', access_point), ])


class openconfig_access_points(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-access-points - based on the path /openconfig-access-points. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: This module defines the top level WiFi Configurations for a list of
Access Points.
  """
  __slots__ = ('_path_helper', '_extmethods', '__access_points',)

  _yang_name = 'openconfig-access-points'
  _yang_namespace = 'http://openconfig.net/yang/wifi/access-points'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__access_points = YANGDynClass(base=yc_access_points_openconfig_access_points__access_points, is_container='container', yang_name="access-points", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

    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 []

  def _get_access_points(self):
    """
    Getter method for access_points, mapped from YANG variable /access_points (container)

    YANG Description: Top most container for configuration and state data for Access
Points.
    """
    return self.__access_points
      
  def _set_access_points(self, v, load=False):
    """
    Setter method for access_points, mapped from YANG variable /access_points (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_access_points is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_access_points() directly.

    YANG Description: Top most container for configuration and state data for Access
Points.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_access_points_openconfig_access_points__access_points, is_container='container', yang_name="access-points", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """access_points must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_access_points_openconfig_access_points__access_points, is_container='container', yang_name="access-points", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)""",
        })

    self.__access_points = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_access_points(self):
    self.__access_points = YANGDynClass(base=yc_access_points_openconfig_access_points__access_points, is_container='container', yang_name="access-points", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi/access-points', defining_module='openconfig-access-points', yang_type='container', is_config=True)

  access_points = __builtin__.property(_get_access_points, _set_access_points)


  _pyangbind_elements = OrderedDict([('access_points', access_points), ])


class yc_config_openconfig_wifi_mac__ssids_ssid_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-wifi-mac - based on the path /ssids/ssid/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Configurable items at the global, SSID level
  """
  __slots__ = ('_path_helper', '_extmethods', '__name','__enabled','__hidden','__default_vlan','__vlan_list','__operating_frequency','__basic_data_rates_2g','__supported_data_rates_2g','__basic_data_rates_5g','__supported_data_rates_5g','__basic_data_rates_6g','__supported_data_rates_6g','__broadcast_filter','__multicast_filter','__ipv6_ndp_filter','__ipv6_ndp_filter_timer','__station_isolation','__opmode','__wpa2_psk','__wpa3_psk','__server_group','__dva','__dhcp_required','__qbss_load','__advertise_apname','__csa','__ptk_timeout','__gtk_timeout','__dot11k','__okc','__mfp',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi-mac'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='string', is_config=True)
    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)
    self.__hidden = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="hidden", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)
    self.__default_vlan = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}), is_leaf=True, yang_name="default-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-vlan-types:vlan-id', is_config=True)
    self.__vlan_list = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']})), is_leaf=False, yang_name="vlan-list", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-vlan-types:vlan-id', is_config=True)
    self.__operating_frequency = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},), default=six.text_type("oc-wifi-types:FREQ_2_5_GHZ"), is_leaf=True, yang_name="operating-frequency", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='identityref', is_config=True)
    self.__basic_data_rates_2g = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="basic-data-rates-2g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='identityref', is_config=True)
    self.__supported_data_rates_2g = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="supported-data-rates-2g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='identityref', is_config=True)
    self.__basic_data_rates_5g = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="basic-data-rates-5g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='identityref', is_config=True)
    self.__supported_data_rates_5g = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="supported-data-rates-5g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='identityref', is_config=True)
    self.__basic_data_rates_6g = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="basic-data-rates-6g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='identityref', is_config=True)
    self.__supported_data_rates_6g = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="supported-data-rates-6g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='identityref', is_config=True)
    self.__broadcast_filter = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="broadcast-filter", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)
    self.__multicast_filter = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="multicast-filter", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)
    self.__ipv6_ndp_filter = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="ipv6-ndp-filter", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)
    self.__ipv6_ndp_filter_timer = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="ipv6-ndp-filter-timer", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint16', is_config=True)
    self.__station_isolation = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="station-isolation", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)
    self.__opmode = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OPEN': {}, 'WPA2_PERSONAL': {}, 'WPA2_ENTERPRISE': {}, 'ENHANCED_OPEN': {}, 'WPA3_SAE': {}, 'WPA3_ENTERPRISE': {}, 'WPA3_ENTERPRISE_192_BIT': {}},), is_leaf=True, yang_name="opmode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='enumeration', is_config=True)
    self.__wpa2_psk = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'length': ['8..63']}), is_leaf=True, yang_name="wpa2-psk", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='string', is_config=True)
    self.__wpa3_psk = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'length': ['8..63']}), is_leaf=True, yang_name="wpa3-psk", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='string', is_config=True)
    self.__server_group = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="server-group", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='string', is_config=True)
    self.__dva = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dva", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)
    self.__dhcp_required = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dhcp-required", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)
    self.__qbss_load = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="qbss-load", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)
    self.__advertise_apname = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="advertise-apname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)
    self.__csa = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="csa", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)
    self.__ptk_timeout = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="ptk-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint16', is_config=True)
    self.__gtk_timeout = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="gtk-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint16', is_config=True)
    self.__dot11k = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dot11k", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)
    self.__okc = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="okc", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)
    self.__mfp = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="mfp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)

    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 ['ssids', 'ssid', 'config']

  def _get_name(self):
    """
    Getter method for name, mapped from YANG variable /ssids/ssid/config/name (string)

    YANG Description: The name of the SSID.
    """
    return self.__name
      
  def _set_name(self, v, load=False):
    """
    Setter method for name, mapped from YANG variable /ssids/ssid/config/name (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_name is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_name() directly.

    YANG Description: The name of the SSID.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='string', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """name must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='string', is_config=True)""",
        })

    self.__name = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_name(self):
    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='string', is_config=True)


  def _get_enabled(self):
    """
    Getter method for enabled, mapped from YANG variable /ssids/ssid/config/enabled (boolean)

    YANG Description: The desired operational state (up/down) of this SSID.
    """
    return self.__enabled
      
  def _set_enabled(self, v, load=False):
    """
    Setter method for enabled, mapped from YANG variable /ssids/ssid/config/enabled (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_enabled is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_enabled() directly.

    YANG Description: The desired operational state (up/down) of this SSID.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """enabled must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)""",
        })

    self.__enabled = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_enabled(self):
    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)


  def _get_hidden(self):
    """
    Getter method for hidden, mapped from YANG variable /ssids/ssid/config/hidden (boolean)

    YANG Description: Whether this SSID IE is hidden within Beacons.
    """
    return self.__hidden
      
  def _set_hidden(self, v, load=False):
    """
    Setter method for hidden, mapped from YANG variable /ssids/ssid/config/hidden (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_hidden is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_hidden() directly.

    YANG Description: Whether this SSID IE is hidden within Beacons.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="hidden", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """hidden must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="hidden", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)""",
        })

    self.__hidden = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_hidden(self):
    self.__hidden = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="hidden", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)


  def _get_default_vlan(self):
    """
    Getter method for default_vlan, mapped from YANG variable /ssids/ssid/config/default_vlan (oc-vlan-types:vlan-id)

    YANG Description: Default VLAN tag used by the SSID. When unspecified, SSID
defaults to untagged. If DVA enabled and RADIUS returns a
VLAN not present in 'vlan-list', or RADIUS returns no VLAN
(Tunnel-Private-Group-Id), this VLAN will be used. If DVA
not enabled, all packets are tagged with this VLAN.
    """
    return self.__default_vlan
      
  def _set_default_vlan(self, v, load=False):
    """
    Setter method for default_vlan, mapped from YANG variable /ssids/ssid/config/default_vlan (oc-vlan-types:vlan-id)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_default_vlan is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_default_vlan() directly.

    YANG Description: Default VLAN tag used by the SSID. When unspecified, SSID
defaults to untagged. If DVA enabled and RADIUS returns a
VLAN not present in 'vlan-list', or RADIUS returns no VLAN
(Tunnel-Private-Group-Id), this VLAN will be used. If DVA
not enabled, all packets are tagged with this VLAN.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}), is_leaf=True, yang_name="default-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-vlan-types:vlan-id', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """default_vlan must be of a type compatible with oc-vlan-types:vlan-id""",
          'defined-type': "oc-vlan-types:vlan-id",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}), is_leaf=True, yang_name="default-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-vlan-types:vlan-id', is_config=True)""",
        })

    self.__default_vlan = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_default_vlan(self):
    self.__default_vlan = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}), is_leaf=True, yang_name="default-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-vlan-types:vlan-id', is_config=True)


  def _get_vlan_list(self):
    """
    Getter method for vlan_list, mapped from YANG variable /ssids/ssid/config/vlan_list (oc-vlan-types:vlan-id)

    YANG Description: List of VLANs allowed on the SSID, if DVA is enabled. Note,
if DVA enabled and RADIUS returns no VLAN or a VLAN outside
of this list, the SSID will be tagged with the value of
vlan-id (or untagged if 'vlan-id' not configured).
    """
    return self.__vlan_list
      
  def _set_vlan_list(self, v, load=False):
    """
    Setter method for vlan_list, mapped from YANG variable /ssids/ssid/config/vlan_list (oc-vlan-types:vlan-id)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_vlan_list is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_vlan_list() directly.

    YANG Description: List of VLANs allowed on the SSID, if DVA is enabled. Note,
if DVA enabled and RADIUS returns no VLAN or a VLAN outside
of this list, the SSID will be tagged with the value of
vlan-id (or untagged if 'vlan-id' not configured).
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']})), is_leaf=False, yang_name="vlan-list", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-vlan-types:vlan-id', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """vlan_list must be of a type compatible with oc-vlan-types:vlan-id""",
          'defined-type': "oc-vlan-types:vlan-id",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']})), is_leaf=False, yang_name="vlan-list", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-vlan-types:vlan-id', is_config=True)""",
        })

    self.__vlan_list = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_vlan_list(self):
    self.__vlan_list = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']})), is_leaf=False, yang_name="vlan-list", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-vlan-types:vlan-id', is_config=True)


  def _get_operating_frequency(self):
    """
    Getter method for operating_frequency, mapped from YANG variable /ssids/ssid/config/operating_frequency (identityref)

    YANG Description: Operating frequency of this SSID. When none specified, the
default is dual-band 2.4 and 5 GHz.
    """
    return self.__operating_frequency
      
  def _set_operating_frequency(self, v, load=False):
    """
    Setter method for operating_frequency, mapped from YANG variable /ssids/ssid/config/operating_frequency (identityref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_operating_frequency is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_operating_frequency() directly.

    YANG Description: Operating frequency of this SSID. When none specified, the
default is dual-band 2.4 and 5 GHz.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},), default=six.text_type("oc-wifi-types:FREQ_2_5_GHZ"), is_leaf=True, yang_name="operating-frequency", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='identityref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """operating_frequency must be of a type compatible with identityref""",
          'defined-type': "openconfig-wifi-mac:identityref",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},), default=six.text_type("oc-wifi-types:FREQ_2_5_GHZ"), is_leaf=True, yang_name="operating-frequency", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='identityref', is_config=True)""",
        })

    self.__operating_frequency = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_operating_frequency(self):
    self.__operating_frequency = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},), default=six.text_type("oc-wifi-types:FREQ_2_5_GHZ"), is_leaf=True, yang_name="operating-frequency", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='identityref', is_config=True)


  def _get_basic_data_rates_2g(self):
    """
    Getter method for basic_data_rates_2g, mapped from YANG variable /ssids/ssid/config/basic_data_rates_2g (identityref)

    YANG Description: 2.4GHz Basic data-rates for the SSID.
    """
    return self.__basic_data_rates_2g
      
  def _set_basic_data_rates_2g(self, v, load=False):
    """
    Setter method for basic_data_rates_2g, mapped from YANG variable /ssids/ssid/config/basic_data_rates_2g (identityref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_basic_data_rates_2g is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_basic_data_rates_2g() directly.

    YANG Description: 2.4GHz Basic data-rates for the SSID.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="basic-data-rates-2g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='identityref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """basic_data_rates_2g must be of a type compatible with identityref""",
          'defined-type': "openconfig-wifi-mac:identityref",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="basic-data-rates-2g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='identityref', is_config=True)""",
        })

    self.__basic_data_rates_2g = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_basic_data_rates_2g(self):
    self.__basic_data_rates_2g = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="basic-data-rates-2g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='identityref', is_config=True)


  def _get_supported_data_rates_2g(self):
    """
    Getter method for supported_data_rates_2g, mapped from YANG variable /ssids/ssid/config/supported_data_rates_2g (identityref)

    YANG Description: 2.4GHz Supported data-rates for the SSID.
    """
    return self.__supported_data_rates_2g
      
  def _set_supported_data_rates_2g(self, v, load=False):
    """
    Setter method for supported_data_rates_2g, mapped from YANG variable /ssids/ssid/config/supported_data_rates_2g (identityref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_supported_data_rates_2g is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_supported_data_rates_2g() directly.

    YANG Description: 2.4GHz Supported data-rates for the SSID.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="supported-data-rates-2g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='identityref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """supported_data_rates_2g must be of a type compatible with identityref""",
          'defined-type': "openconfig-wifi-mac:identityref",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="supported-data-rates-2g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='identityref', is_config=True)""",
        })

    self.__supported_data_rates_2g = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_supported_data_rates_2g(self):
    self.__supported_data_rates_2g = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="supported-data-rates-2g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='identityref', is_config=True)


  def _get_basic_data_rates_5g(self):
    """
    Getter method for basic_data_rates_5g, mapped from YANG variable /ssids/ssid/config/basic_data_rates_5g (identityref)

    YANG Description: 5GHz Basic data-rates for the SSID.
    """
    return self.__basic_data_rates_5g
      
  def _set_basic_data_rates_5g(self, v, load=False):
    """
    Setter method for basic_data_rates_5g, mapped from YANG variable /ssids/ssid/config/basic_data_rates_5g (identityref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_basic_data_rates_5g is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_basic_data_rates_5g() directly.

    YANG Description: 5GHz Basic data-rates for the SSID.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="basic-data-rates-5g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='identityref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """basic_data_rates_5g must be of a type compatible with identityref""",
          'defined-type': "openconfig-wifi-mac:identityref",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="basic-data-rates-5g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='identityref', is_config=True)""",
        })

    self.__basic_data_rates_5g = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_basic_data_rates_5g(self):
    self.__basic_data_rates_5g = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="basic-data-rates-5g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='identityref', is_config=True)


  def _get_supported_data_rates_5g(self):
    """
    Getter method for supported_data_rates_5g, mapped from YANG variable /ssids/ssid/config/supported_data_rates_5g (identityref)

    YANG Description: 5GHz Supported data-rates for the SSID.
    """
    return self.__supported_data_rates_5g
      
  def _set_supported_data_rates_5g(self, v, load=False):
    """
    Setter method for supported_data_rates_5g, mapped from YANG variable /ssids/ssid/config/supported_data_rates_5g (identityref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_supported_data_rates_5g is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_supported_data_rates_5g() directly.

    YANG Description: 5GHz Supported data-rates for the SSID.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="supported-data-rates-5g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='identityref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """supported_data_rates_5g must be of a type compatible with identityref""",
          'defined-type': "openconfig-wifi-mac:identityref",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="supported-data-rates-5g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='identityref', is_config=True)""",
        })

    self.__supported_data_rates_5g = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_supported_data_rates_5g(self):
    self.__supported_data_rates_5g = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="supported-data-rates-5g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='identityref', is_config=True)


  def _get_basic_data_rates_6g(self):
    """
    Getter method for basic_data_rates_6g, mapped from YANG variable /ssids/ssid/config/basic_data_rates_6g (identityref)

    YANG Description: 6GHz Basic data-rates for the SSID.
    """
    return self.__basic_data_rates_6g
      
  def _set_basic_data_rates_6g(self, v, load=False):
    """
    Setter method for basic_data_rates_6g, mapped from YANG variable /ssids/ssid/config/basic_data_rates_6g (identityref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_basic_data_rates_6g is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_basic_data_rates_6g() directly.

    YANG Description: 6GHz Basic data-rates for the SSID.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="basic-data-rates-6g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='identityref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """basic_data_rates_6g must be of a type compatible with identityref""",
          'defined-type': "openconfig-wifi-mac:identityref",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="basic-data-rates-6g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='identityref', is_config=True)""",
        })

    self.__basic_data_rates_6g = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_basic_data_rates_6g(self):
    self.__basic_data_rates_6g = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="basic-data-rates-6g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='identityref', is_config=True)


  def _get_supported_data_rates_6g(self):
    """
    Getter method for supported_data_rates_6g, mapped from YANG variable /ssids/ssid/config/supported_data_rates_6g (identityref)

    YANG Description: 6GHz Supported data-rates for the SSID.
    """
    return self.__supported_data_rates_6g
      
  def _set_supported_data_rates_6g(self, v, load=False):
    """
    Setter method for supported_data_rates_6g, mapped from YANG variable /ssids/ssid/config/supported_data_rates_6g (identityref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_supported_data_rates_6g is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_supported_data_rates_6g() directly.

    YANG Description: 6GHz Supported data-rates for the SSID.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="supported-data-rates-6g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='identityref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """supported_data_rates_6g must be of a type compatible with identityref""",
          'defined-type': "openconfig-wifi-mac:identityref",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="supported-data-rates-6g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='identityref', is_config=True)""",
        })

    self.__supported_data_rates_6g = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_supported_data_rates_6g(self):
    self.__supported_data_rates_6g = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="supported-data-rates-6g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='identityref', is_config=True)


  def _get_broadcast_filter(self):
    """
    Getter method for broadcast_filter, mapped from YANG variable /ssids/ssid/config/broadcast_filter (boolean)

    YANG Description: Convert all downstream broadcast ARP to unicast
only if Station is associated to the AP. Drop packet
if Station is not associated to the AP. All other
broadcast, except DHCP, is dropped by the AP.

DHCP Offers/ACKs are converted to Unicast, over-the-air.
    """
    return self.__broadcast_filter
      
  def _set_broadcast_filter(self, v, load=False):
    """
    Setter method for broadcast_filter, mapped from YANG variable /ssids/ssid/config/broadcast_filter (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_broadcast_filter is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_broadcast_filter() directly.

    YANG Description: Convert all downstream broadcast ARP to unicast
only if Station is associated to the AP. Drop packet
if Station is not associated to the AP. All other
broadcast, except DHCP, is dropped by the AP.

DHCP Offers/ACKs are converted to Unicast, over-the-air.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="broadcast-filter", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """broadcast_filter must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="broadcast-filter", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)""",
        })

    self.__broadcast_filter = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_broadcast_filter(self):
    self.__broadcast_filter = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="broadcast-filter", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)


  def _get_multicast_filter(self):
    """
    Getter method for multicast_filter, mapped from YANG variable /ssids/ssid/config/multicast_filter (boolean)

    YANG Description: Drop all downstream Multicast packets.
    """
    return self.__multicast_filter
      
  def _set_multicast_filter(self, v, load=False):
    """
    Setter method for multicast_filter, mapped from YANG variable /ssids/ssid/config/multicast_filter (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_multicast_filter is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_multicast_filter() directly.

    YANG Description: Drop all downstream Multicast packets.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="multicast-filter", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """multicast_filter must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="multicast-filter", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)""",
        })

    self.__multicast_filter = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_multicast_filter(self):
    self.__multicast_filter = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="multicast-filter", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)


  def _get_ipv6_ndp_filter(self):
    """
    Getter method for ipv6_ndp_filter, mapped from YANG variable /ssids/ssid/config/ipv6_ndp_filter (boolean)

    YANG Description: Neighbor Advertisements will be cached at the AP (or WLC)
and unicast in response to Neighbor Solicitations.

Router Advertisements, in response to a Router Solicitation
are converted to Unicast for over-the-air transmission.
    """
    return self.__ipv6_ndp_filter
      
  def _set_ipv6_ndp_filter(self, v, load=False):
    """
    Setter method for ipv6_ndp_filter, mapped from YANG variable /ssids/ssid/config/ipv6_ndp_filter (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ipv6_ndp_filter is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ipv6_ndp_filter() directly.

    YANG Description: Neighbor Advertisements will be cached at the AP (or WLC)
and unicast in response to Neighbor Solicitations.

Router Advertisements, in response to a Router Solicitation
are converted to Unicast for over-the-air transmission.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="ipv6-ndp-filter", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ipv6_ndp_filter must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="ipv6-ndp-filter", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)""",
        })

    self.__ipv6_ndp_filter = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ipv6_ndp_filter(self):
    self.__ipv6_ndp_filter = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="ipv6-ndp-filter", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)


  def _get_ipv6_ndp_filter_timer(self):
    """
    Getter method for ipv6_ndp_filter_timer, mapped from YANG variable /ssids/ssid/config/ipv6_ndp_filter_timer (uint16)

    YANG Description: Time, in seconds, the ndp-filter will cache
Neighbor Advertisements (NA).
    """
    return self.__ipv6_ndp_filter_timer
      
  def _set_ipv6_ndp_filter_timer(self, v, load=False):
    """
    Setter method for ipv6_ndp_filter_timer, mapped from YANG variable /ssids/ssid/config/ipv6_ndp_filter_timer (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ipv6_ndp_filter_timer is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ipv6_ndp_filter_timer() directly.

    YANG Description: Time, in seconds, the ndp-filter will cache
Neighbor Advertisements (NA).
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="ipv6-ndp-filter-timer", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint16', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ipv6_ndp_filter_timer must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="ipv6-ndp-filter-timer", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint16', is_config=True)""",
        })

    self.__ipv6_ndp_filter_timer = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ipv6_ndp_filter_timer(self):
    self.__ipv6_ndp_filter_timer = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="ipv6-ndp-filter-timer", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint16', is_config=True)


  def _get_station_isolation(self):
    """
    Getter method for station_isolation, mapped from YANG variable /ssids/ssid/config/station_isolation (boolean)

    YANG Description: Block Station peer to peer communication.
    """
    return self.__station_isolation
      
  def _set_station_isolation(self, v, load=False):
    """
    Setter method for station_isolation, mapped from YANG variable /ssids/ssid/config/station_isolation (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_station_isolation is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_station_isolation() directly.

    YANG Description: Block Station peer to peer communication.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="station-isolation", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """station_isolation must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="station-isolation", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)""",
        })

    self.__station_isolation = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_station_isolation(self):
    self.__station_isolation = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="station-isolation", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)


  def _get_opmode(self):
    """
    Getter method for opmode, mapped from YANG variable /ssids/ssid/config/opmode (enumeration)

    YANG Description: The type of Layer2 authentication in use.
    """
    return self.__opmode
      
  def _set_opmode(self, v, load=False):
    """
    Setter method for opmode, mapped from YANG variable /ssids/ssid/config/opmode (enumeration)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_opmode is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_opmode() directly.

    YANG Description: The type of Layer2 authentication in use.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OPEN': {}, 'WPA2_PERSONAL': {}, 'WPA2_ENTERPRISE': {}, 'ENHANCED_OPEN': {}, 'WPA3_SAE': {}, 'WPA3_ENTERPRISE': {}, 'WPA3_ENTERPRISE_192_BIT': {}},), is_leaf=True, yang_name="opmode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='enumeration', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """opmode must be of a type compatible with enumeration""",
          'defined-type': "openconfig-wifi-mac:enumeration",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OPEN': {}, 'WPA2_PERSONAL': {}, 'WPA2_ENTERPRISE': {}, 'ENHANCED_OPEN': {}, 'WPA3_SAE': {}, 'WPA3_ENTERPRISE': {}, 'WPA3_ENTERPRISE_192_BIT': {}},), is_leaf=True, yang_name="opmode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='enumeration', is_config=True)""",
        })

    self.__opmode = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_opmode(self):
    self.__opmode = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OPEN': {}, 'WPA2_PERSONAL': {}, 'WPA2_ENTERPRISE': {}, 'ENHANCED_OPEN': {}, 'WPA3_SAE': {}, 'WPA3_ENTERPRISE': {}, 'WPA3_ENTERPRISE_192_BIT': {}},), is_leaf=True, yang_name="opmode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='enumeration', is_config=True)


  def _get_wpa2_psk(self):
    """
    Getter method for wpa2_psk, mapped from YANG variable /ssids/ssid/config/wpa2_psk (string)

    YANG Description: The passphrase used on this WPA2-Personal SSID.
    """
    return self.__wpa2_psk
      
  def _set_wpa2_psk(self, v, load=False):
    """
    Setter method for wpa2_psk, mapped from YANG variable /ssids/ssid/config/wpa2_psk (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_wpa2_psk is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_wpa2_psk() directly.

    YANG Description: The passphrase used on this WPA2-Personal SSID.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'length': ['8..63']}), is_leaf=True, yang_name="wpa2-psk", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='string', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """wpa2_psk must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'length': ['8..63']}), is_leaf=True, yang_name="wpa2-psk", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='string', is_config=True)""",
        })

    self.__wpa2_psk = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_wpa2_psk(self):
    self.__wpa2_psk = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'length': ['8..63']}), is_leaf=True, yang_name="wpa2-psk", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='string', is_config=True)


  def _get_wpa3_psk(self):
    """
    Getter method for wpa3_psk, mapped from YANG variable /ssids/ssid/config/wpa3_psk (string)

    YANG Description: The passphrase used on this WPA3-SAE SSID.
    """
    return self.__wpa3_psk
      
  def _set_wpa3_psk(self, v, load=False):
    """
    Setter method for wpa3_psk, mapped from YANG variable /ssids/ssid/config/wpa3_psk (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_wpa3_psk is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_wpa3_psk() directly.

    YANG Description: The passphrase used on this WPA3-SAE SSID.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'length': ['8..63']}), is_leaf=True, yang_name="wpa3-psk", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='string', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """wpa3_psk must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'length': ['8..63']}), is_leaf=True, yang_name="wpa3-psk", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='string', is_config=True)""",
        })

    self.__wpa3_psk = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_wpa3_psk(self):
    self.__wpa3_psk = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'length': ['8..63']}), is_leaf=True, yang_name="wpa3-psk", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='string', is_config=True)


  def _get_server_group(self):
    """
    Getter method for server_group, mapped from YANG variable /ssids/ssid/config/server_group (string)

    YANG Description: Specifies the RADIUS server-group to be used,
as defined in the openconfig-aaa.yang model.

Including WPA2_PERSONAL and WPA3_SAE as they can be accompanied by
MAB.
    """
    return self.__server_group
      
  def _set_server_group(self, v, load=False):
    """
    Setter method for server_group, mapped from YANG variable /ssids/ssid/config/server_group (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_server_group is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_server_group() directly.

    YANG Description: Specifies the RADIUS server-group to be used,
as defined in the openconfig-aaa.yang model.

Including WPA2_PERSONAL and WPA3_SAE as they can be accompanied by
MAB.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="server-group", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='string', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """server_group must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="server-group", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='string', is_config=True)""",
        })

    self.__server_group = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_server_group(self):
    self.__server_group = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="server-group", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='string', is_config=True)


  def _get_dva(self):
    """
    Getter method for dva, mapped from YANG variable /ssids/ssid/config/dva (boolean)

    YANG Description: Enable/disable Dynamic VLAN Assignment,
using 'Tunnel-Private-Group-Id' RADIUS attribute.
    """
    return self.__dva
      
  def _set_dva(self, v, load=False):
    """
    Setter method for dva, mapped from YANG variable /ssids/ssid/config/dva (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dva is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dva() directly.

    YANG Description: Enable/disable Dynamic VLAN Assignment,
using 'Tunnel-Private-Group-Id' RADIUS attribute.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="dva", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dva must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dva", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)""",
        })

    self.__dva = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dva(self):
    self.__dva = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dva", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)


  def _get_dhcp_required(self):
    """
    Getter method for dhcp_required, mapped from YANG variable /ssids/ssid/config/dhcp_required (boolean)

    YANG Description: Allow a Station to access the network only if
a DHCP exchange has occurred.
    """
    return self.__dhcp_required
      
  def _set_dhcp_required(self, v, load=False):
    """
    Setter method for dhcp_required, mapped from YANG variable /ssids/ssid/config/dhcp_required (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dhcp_required is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dhcp_required() directly.

    YANG Description: Allow a Station to access the network only if
a DHCP exchange has occurred.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="dhcp-required", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dhcp_required must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dhcp-required", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)""",
        })

    self.__dhcp_required = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dhcp_required(self):
    self.__dhcp_required = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dhcp-required", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)


  def _get_qbss_load(self):
    """
    Getter method for qbss_load, mapped from YANG variable /ssids/ssid/config/qbss_load (boolean)

    YANG Description: Advertisement of the QBSS Load Information Element.
    """
    return self.__qbss_load
      
  def _set_qbss_load(self, v, load=False):
    """
    Setter method for qbss_load, mapped from YANG variable /ssids/ssid/config/qbss_load (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_qbss_load is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_qbss_load() directly.

    YANG Description: Advertisement of the QBSS Load Information Element.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="qbss-load", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """qbss_load must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="qbss-load", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)""",
        })

    self.__qbss_load = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_qbss_load(self):
    self.__qbss_load = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="qbss-load", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)


  def _get_advertise_apname(self):
    """
    Getter method for advertise_apname, mapped from YANG variable /ssids/ssid/config/advertise_apname (boolean)

    YANG Description: Advertise the AP hostname in Beacon and Probe Response frames.
    """
    return self.__advertise_apname
      
  def _set_advertise_apname(self, v, load=False):
    """
    Setter method for advertise_apname, mapped from YANG variable /ssids/ssid/config/advertise_apname (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_advertise_apname is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_advertise_apname() directly.

    YANG Description: Advertise the AP hostname in Beacon and Probe Response frames.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="advertise-apname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """advertise_apname must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="advertise-apname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)""",
        })

    self.__advertise_apname = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_advertise_apname(self):
    self.__advertise_apname = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="advertise-apname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)


  def _get_csa(self):
    """
    Getter method for csa, mapped from YANG variable /ssids/ssid/config/csa (boolean)

    YANG Description: Enable/Disable 802.11h channel-switch-announcement.
    """
    return self.__csa
      
  def _set_csa(self, v, load=False):
    """
    Setter method for csa, mapped from YANG variable /ssids/ssid/config/csa (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_csa is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_csa() directly.

    YANG Description: Enable/Disable 802.11h channel-switch-announcement.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="csa", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """csa must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="csa", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)""",
        })

    self.__csa = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_csa(self):
    self.__csa = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="csa", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)


  def _get_ptk_timeout(self):
    """
    Getter method for ptk_timeout, mapped from YANG variable /ssids/ssid/config/ptk_timeout (uint16)

    YANG Description: Time, in seconds, for the Pairwise Transient Key.
    """
    return self.__ptk_timeout
      
  def _set_ptk_timeout(self, v, load=False):
    """
    Setter method for ptk_timeout, mapped from YANG variable /ssids/ssid/config/ptk_timeout (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ptk_timeout is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ptk_timeout() directly.

    YANG Description: Time, in seconds, for the Pairwise Transient Key.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="ptk-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint16', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ptk_timeout must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="ptk-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint16', is_config=True)""",
        })

    self.__ptk_timeout = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ptk_timeout(self):
    self.__ptk_timeout = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="ptk-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint16', is_config=True)


  def _get_gtk_timeout(self):
    """
    Getter method for gtk_timeout, mapped from YANG variable /ssids/ssid/config/gtk_timeout (uint16)

    YANG Description: TTL for the Group Temporal Key.
    """
    return self.__gtk_timeout
      
  def _set_gtk_timeout(self, v, load=False):
    """
    Setter method for gtk_timeout, mapped from YANG variable /ssids/ssid/config/gtk_timeout (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_gtk_timeout is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_gtk_timeout() directly.

    YANG Description: TTL for the Group Temporal Key.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="gtk-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint16', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """gtk_timeout must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="gtk-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint16', is_config=True)""",
        })

    self.__gtk_timeout = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_gtk_timeout(self):
    self.__gtk_timeout = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="gtk-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint16', is_config=True)


  def _get_dot11k(self):
    """
    Getter method for dot11k, mapped from YANG variable /ssids/ssid/config/dot11k (boolean)

    YANG Description: 802.11k neighbor-list enabled/disabled.
    """
    return self.__dot11k
      
  def _set_dot11k(self, v, load=False):
    """
    Setter method for dot11k, mapped from YANG variable /ssids/ssid/config/dot11k (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dot11k is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dot11k() directly.

    YANG Description: 802.11k neighbor-list enabled/disabled.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="dot11k", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dot11k must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dot11k", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)""",
        })

    self.__dot11k = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dot11k(self):
    self.__dot11k = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dot11k", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)


  def _get_okc(self):
    """
    Getter method for okc, mapped from YANG variable /ssids/ssid/config/okc (boolean)

    YANG Description: Enable/disable Opportunistic Key Caching.
    """
    return self.__okc
      
  def _set_okc(self, v, load=False):
    """
    Setter method for okc, mapped from YANG variable /ssids/ssid/config/okc (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_okc is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_okc() directly.

    YANG Description: Enable/disable Opportunistic Key Caching.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="okc", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """okc must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="okc", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)""",
        })

    self.__okc = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_okc(self):
    self.__okc = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="okc", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)


  def _get_mfp(self):
    """
    Getter method for mfp, mapped from YANG variable /ssids/ssid/config/mfp (boolean)

    YANG Description: Management Frame Protection is required for WPA3 and OWE.
    """
    return self.__mfp
      
  def _set_mfp(self, v, load=False):
    """
    Setter method for mfp, mapped from YANG variable /ssids/ssid/config/mfp (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mfp is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mfp() directly.

    YANG Description: Management Frame Protection is required for WPA3 and OWE.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="mfp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mfp must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="mfp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)""",
        })

    self.__mfp = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mfp(self):
    self.__mfp = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="mfp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)

  name = __builtin__.property(_get_name, _set_name)
  enabled = __builtin__.property(_get_enabled, _set_enabled)
  hidden = __builtin__.property(_get_hidden, _set_hidden)
  default_vlan = __builtin__.property(_get_default_vlan, _set_default_vlan)
  vlan_list = __builtin__.property(_get_vlan_list, _set_vlan_list)
  operating_frequency = __builtin__.property(_get_operating_frequency, _set_operating_frequency)
  basic_data_rates_2g = __builtin__.property(_get_basic_data_rates_2g, _set_basic_data_rates_2g)
  supported_data_rates_2g = __builtin__.property(_get_supported_data_rates_2g, _set_supported_data_rates_2g)
  basic_data_rates_5g = __builtin__.property(_get_basic_data_rates_5g, _set_basic_data_rates_5g)
  supported_data_rates_5g = __builtin__.property(_get_supported_data_rates_5g, _set_supported_data_rates_5g)
  basic_data_rates_6g = __builtin__.property(_get_basic_data_rates_6g, _set_basic_data_rates_6g)
  supported_data_rates_6g = __builtin__.property(_get_supported_data_rates_6g, _set_supported_data_rates_6g)
  broadcast_filter = __builtin__.property(_get_broadcast_filter, _set_broadcast_filter)
  multicast_filter = __builtin__.property(_get_multicast_filter, _set_multicast_filter)
  ipv6_ndp_filter = __builtin__.property(_get_ipv6_ndp_filter, _set_ipv6_ndp_filter)
  ipv6_ndp_filter_timer = __builtin__.property(_get_ipv6_ndp_filter_timer, _set_ipv6_ndp_filter_timer)
  station_isolation = __builtin__.property(_get_station_isolation, _set_station_isolation)
  opmode = __builtin__.property(_get_opmode, _set_opmode)
  wpa2_psk = __builtin__.property(_get_wpa2_psk, _set_wpa2_psk)
  wpa3_psk = __builtin__.property(_get_wpa3_psk, _set_wpa3_psk)
  server_group = __builtin__.property(_get_server_group, _set_server_group)
  dva = __builtin__.property(_get_dva, _set_dva)
  dhcp_required = __builtin__.property(_get_dhcp_required, _set_dhcp_required)
  qbss_load = __builtin__.property(_get_qbss_load, _set_qbss_load)
  advertise_apname = __builtin__.property(_get_advertise_apname, _set_advertise_apname)
  csa = __builtin__.property(_get_csa, _set_csa)
  ptk_timeout = __builtin__.property(_get_ptk_timeout, _set_ptk_timeout)
  gtk_timeout = __builtin__.property(_get_gtk_timeout, _set_gtk_timeout)
  dot11k = __builtin__.property(_get_dot11k, _set_dot11k)
  okc = __builtin__.property(_get_okc, _set_okc)
  mfp = __builtin__.property(_get_mfp, _set_mfp)


  _pyangbind_elements = OrderedDict([('name', name), ('enabled', enabled), ('hidden', hidden), ('default_vlan', default_vlan), ('vlan_list', vlan_list), ('operating_frequency', operating_frequency), ('basic_data_rates_2g', basic_data_rates_2g), ('supported_data_rates_2g', supported_data_rates_2g), ('basic_data_rates_5g', basic_data_rates_5g), ('supported_data_rates_5g', supported_data_rates_5g), ('basic_data_rates_6g', basic_data_rates_6g), ('supported_data_rates_6g', supported_data_rates_6g), ('broadcast_filter', broadcast_filter), ('multicast_filter', multicast_filter), ('ipv6_ndp_filter', ipv6_ndp_filter), ('ipv6_ndp_filter_timer', ipv6_ndp_filter_timer), ('station_isolation', station_isolation), ('opmode', opmode), ('wpa2_psk', wpa2_psk), ('wpa3_psk', wpa3_psk), ('server_group', server_group), ('dva', dva), ('dhcp_required', dhcp_required), ('qbss_load', qbss_load), ('advertise_apname', advertise_apname), ('csa', csa), ('ptk_timeout', ptk_timeout), ('gtk_timeout', gtk_timeout), ('dot11k', dot11k), ('okc', okc), ('mfp', mfp), ])


class yc_state_openconfig_wifi_mac__ssids_ssid_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-wifi-mac - based on the path /ssids/ssid/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Operational state data at the SSID level
  """
  __slots__ = ('_path_helper', '_extmethods', '__name','__enabled','__hidden','__default_vlan','__vlan_list','__operating_frequency','__basic_data_rates_2g','__supported_data_rates_2g','__basic_data_rates_5g','__supported_data_rates_5g','__basic_data_rates_6g','__supported_data_rates_6g','__broadcast_filter','__multicast_filter','__ipv6_ndp_filter','__ipv6_ndp_filter_timer','__station_isolation','__opmode','__wpa2_psk','__wpa3_psk','__server_group','__dva','__dhcp_required','__qbss_load','__advertise_apname','__csa','__ptk_timeout','__gtk_timeout','__dot11k','__okc','__mfp',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi-mac'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='string', is_config=False)
    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)
    self.__hidden = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="hidden", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)
    self.__default_vlan = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}), is_leaf=True, yang_name="default-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-vlan-types:vlan-id', is_config=False)
    self.__vlan_list = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']})), is_leaf=False, yang_name="vlan-list", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-vlan-types:vlan-id', is_config=False)
    self.__operating_frequency = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},), default=six.text_type("oc-wifi-types:FREQ_2_5_GHZ"), is_leaf=True, yang_name="operating-frequency", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='identityref', is_config=False)
    self.__basic_data_rates_2g = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="basic-data-rates-2g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='identityref', is_config=False)
    self.__supported_data_rates_2g = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="supported-data-rates-2g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='identityref', is_config=False)
    self.__basic_data_rates_5g = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="basic-data-rates-5g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='identityref', is_config=False)
    self.__supported_data_rates_5g = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="supported-data-rates-5g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='identityref', is_config=False)
    self.__basic_data_rates_6g = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="basic-data-rates-6g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='identityref', is_config=False)
    self.__supported_data_rates_6g = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="supported-data-rates-6g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='identityref', is_config=False)
    self.__broadcast_filter = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="broadcast-filter", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)
    self.__multicast_filter = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="multicast-filter", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)
    self.__ipv6_ndp_filter = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="ipv6-ndp-filter", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)
    self.__ipv6_ndp_filter_timer = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="ipv6-ndp-filter-timer", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint16', is_config=False)
    self.__station_isolation = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="station-isolation", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)
    self.__opmode = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OPEN': {}, 'WPA2_PERSONAL': {}, 'WPA2_ENTERPRISE': {}, 'ENHANCED_OPEN': {}, 'WPA3_SAE': {}, 'WPA3_ENTERPRISE': {}, 'WPA3_ENTERPRISE_192_BIT': {}},), is_leaf=True, yang_name="opmode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='enumeration', is_config=False)
    self.__wpa2_psk = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'length': ['8..63']}), is_leaf=True, yang_name="wpa2-psk", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='string', is_config=False)
    self.__wpa3_psk = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'length': ['8..63']}), is_leaf=True, yang_name="wpa3-psk", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='string', is_config=False)
    self.__server_group = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="server-group", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='string', is_config=False)
    self.__dva = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dva", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)
    self.__dhcp_required = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dhcp-required", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)
    self.__qbss_load = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="qbss-load", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)
    self.__advertise_apname = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="advertise-apname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)
    self.__csa = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="csa", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)
    self.__ptk_timeout = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="ptk-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint16', is_config=False)
    self.__gtk_timeout = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="gtk-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint16', is_config=False)
    self.__dot11k = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dot11k", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)
    self.__okc = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="okc", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)
    self.__mfp = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="mfp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', 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 ['ssids', 'ssid', 'state']

  def _get_name(self):
    """
    Getter method for name, mapped from YANG variable /ssids/ssid/state/name (string)

    YANG Description: The name of the SSID.
    """
    return self.__name
      
  def _set_name(self, v, load=False):
    """
    Setter method for name, mapped from YANG variable /ssids/ssid/state/name (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_name is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_name() directly.

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

    self.__name = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_name(self):
    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='string', is_config=False)


  def _get_enabled(self):
    """
    Getter method for enabled, mapped from YANG variable /ssids/ssid/state/enabled (boolean)

    YANG Description: The desired operational state (up/down) of this SSID.
    """
    return self.__enabled
      
  def _set_enabled(self, v, load=False):
    """
    Setter method for enabled, mapped from YANG variable /ssids/ssid/state/enabled (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_enabled is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_enabled() directly.

    YANG Description: The desired operational state (up/down) of this SSID.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """enabled must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)""",
        })

    self.__enabled = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_enabled(self):
    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)


  def _get_hidden(self):
    """
    Getter method for hidden, mapped from YANG variable /ssids/ssid/state/hidden (boolean)

    YANG Description: Whether this SSID IE is hidden within Beacons.
    """
    return self.__hidden
      
  def _set_hidden(self, v, load=False):
    """
    Setter method for hidden, mapped from YANG variable /ssids/ssid/state/hidden (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_hidden is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_hidden() directly.

    YANG Description: Whether this SSID IE is hidden within Beacons.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="hidden", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """hidden must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="hidden", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)""",
        })

    self.__hidden = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_hidden(self):
    self.__hidden = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="hidden", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)


  def _get_default_vlan(self):
    """
    Getter method for default_vlan, mapped from YANG variable /ssids/ssid/state/default_vlan (oc-vlan-types:vlan-id)

    YANG Description: Default VLAN tag used by the SSID. When unspecified, SSID
defaults to untagged. If DVA enabled and RADIUS returns a
VLAN not present in 'vlan-list', or RADIUS returns no VLAN
(Tunnel-Private-Group-Id), this VLAN will be used. If DVA
not enabled, all packets are tagged with this VLAN.
    """
    return self.__default_vlan
      
  def _set_default_vlan(self, v, load=False):
    """
    Setter method for default_vlan, mapped from YANG variable /ssids/ssid/state/default_vlan (oc-vlan-types:vlan-id)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_default_vlan is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_default_vlan() directly.

    YANG Description: Default VLAN tag used by the SSID. When unspecified, SSID
defaults to untagged. If DVA enabled and RADIUS returns a
VLAN not present in 'vlan-list', or RADIUS returns no VLAN
(Tunnel-Private-Group-Id), this VLAN will be used. If DVA
not enabled, all packets are tagged with this VLAN.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}), is_leaf=True, yang_name="default-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-vlan-types:vlan-id', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """default_vlan must be of a type compatible with oc-vlan-types:vlan-id""",
          'defined-type': "oc-vlan-types:vlan-id",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}), is_leaf=True, yang_name="default-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-vlan-types:vlan-id', is_config=False)""",
        })

    self.__default_vlan = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_default_vlan(self):
    self.__default_vlan = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']}), is_leaf=True, yang_name="default-vlan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-vlan-types:vlan-id', is_config=False)


  def _get_vlan_list(self):
    """
    Getter method for vlan_list, mapped from YANG variable /ssids/ssid/state/vlan_list (oc-vlan-types:vlan-id)

    YANG Description: List of VLANs allowed on the SSID, if DVA is enabled. Note,
if DVA enabled and RADIUS returns no VLAN or a VLAN outside
of this list, the SSID will be tagged with the value of
vlan-id (or untagged if 'vlan-id' not configured).
    """
    return self.__vlan_list
      
  def _set_vlan_list(self, v, load=False):
    """
    Setter method for vlan_list, mapped from YANG variable /ssids/ssid/state/vlan_list (oc-vlan-types:vlan-id)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_vlan_list is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_vlan_list() directly.

    YANG Description: List of VLANs allowed on the SSID, if DVA is enabled. Note,
if DVA enabled and RADIUS returns no VLAN or a VLAN outside
of this list, the SSID will be tagged with the value of
vlan-id (or untagged if 'vlan-id' not configured).
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']})), is_leaf=False, yang_name="vlan-list", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-vlan-types:vlan-id', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """vlan_list must be of a type compatible with oc-vlan-types:vlan-id""",
          'defined-type': "oc-vlan-types:vlan-id",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']})), is_leaf=False, yang_name="vlan-list", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-vlan-types:vlan-id', is_config=False)""",
        })

    self.__vlan_list = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_vlan_list(self):
    self.__vlan_list = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), restriction_dict={'range': ['1..4094']})), is_leaf=False, yang_name="vlan-list", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-vlan-types:vlan-id', is_config=False)


  def _get_operating_frequency(self):
    """
    Getter method for operating_frequency, mapped from YANG variable /ssids/ssid/state/operating_frequency (identityref)

    YANG Description: Operating frequency of this SSID. When none specified, the
default is dual-band 2.4 and 5 GHz.
    """
    return self.__operating_frequency
      
  def _set_operating_frequency(self, v, load=False):
    """
    Setter method for operating_frequency, mapped from YANG variable /ssids/ssid/state/operating_frequency (identityref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_operating_frequency is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_operating_frequency() directly.

    YANG Description: Operating frequency of this SSID. When none specified, the
default is dual-band 2.4 and 5 GHz.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},), default=six.text_type("oc-wifi-types:FREQ_2_5_GHZ"), is_leaf=True, yang_name="operating-frequency", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='identityref', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """operating_frequency must be of a type compatible with identityref""",
          'defined-type': "openconfig-wifi-mac:identityref",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},), default=six.text_type("oc-wifi-types:FREQ_2_5_GHZ"), is_leaf=True, yang_name="operating-frequency", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='identityref', is_config=False)""",
        })

    self.__operating_frequency = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_operating_frequency(self):
    self.__operating_frequency = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},), default=six.text_type("oc-wifi-types:FREQ_2_5_GHZ"), is_leaf=True, yang_name="operating-frequency", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='identityref', is_config=False)


  def _get_basic_data_rates_2g(self):
    """
    Getter method for basic_data_rates_2g, mapped from YANG variable /ssids/ssid/state/basic_data_rates_2g (identityref)

    YANG Description: 2.4GHz Basic data-rates for the SSID.
    """
    return self.__basic_data_rates_2g
      
  def _set_basic_data_rates_2g(self, v, load=False):
    """
    Setter method for basic_data_rates_2g, mapped from YANG variable /ssids/ssid/state/basic_data_rates_2g (identityref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_basic_data_rates_2g is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_basic_data_rates_2g() directly.

    YANG Description: 2.4GHz Basic data-rates for the SSID.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="basic-data-rates-2g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='identityref', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """basic_data_rates_2g must be of a type compatible with identityref""",
          'defined-type': "openconfig-wifi-mac:identityref",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="basic-data-rates-2g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='identityref', is_config=False)""",
        })

    self.__basic_data_rates_2g = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_basic_data_rates_2g(self):
    self.__basic_data_rates_2g = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="basic-data-rates-2g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='identityref', is_config=False)


  def _get_supported_data_rates_2g(self):
    """
    Getter method for supported_data_rates_2g, mapped from YANG variable /ssids/ssid/state/supported_data_rates_2g (identityref)

    YANG Description: 2.4GHz Supported data-rates for the SSID.
    """
    return self.__supported_data_rates_2g
      
  def _set_supported_data_rates_2g(self, v, load=False):
    """
    Setter method for supported_data_rates_2g, mapped from YANG variable /ssids/ssid/state/supported_data_rates_2g (identityref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_supported_data_rates_2g is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_supported_data_rates_2g() directly.

    YANG Description: 2.4GHz Supported data-rates for the SSID.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="supported-data-rates-2g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='identityref', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """supported_data_rates_2g must be of a type compatible with identityref""",
          'defined-type': "openconfig-wifi-mac:identityref",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="supported-data-rates-2g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='identityref', is_config=False)""",
        })

    self.__supported_data_rates_2g = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_supported_data_rates_2g(self):
    self.__supported_data_rates_2g = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="supported-data-rates-2g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='identityref', is_config=False)


  def _get_basic_data_rates_5g(self):
    """
    Getter method for basic_data_rates_5g, mapped from YANG variable /ssids/ssid/state/basic_data_rates_5g (identityref)

    YANG Description: 5GHz Basic data-rates for the SSID.
    """
    return self.__basic_data_rates_5g
      
  def _set_basic_data_rates_5g(self, v, load=False):
    """
    Setter method for basic_data_rates_5g, mapped from YANG variable /ssids/ssid/state/basic_data_rates_5g (identityref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_basic_data_rates_5g is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_basic_data_rates_5g() directly.

    YANG Description: 5GHz Basic data-rates for the SSID.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="basic-data-rates-5g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='identityref', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """basic_data_rates_5g must be of a type compatible with identityref""",
          'defined-type': "openconfig-wifi-mac:identityref",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="basic-data-rates-5g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='identityref', is_config=False)""",
        })

    self.__basic_data_rates_5g = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_basic_data_rates_5g(self):
    self.__basic_data_rates_5g = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="basic-data-rates-5g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='identityref', is_config=False)


  def _get_supported_data_rates_5g(self):
    """
    Getter method for supported_data_rates_5g, mapped from YANG variable /ssids/ssid/state/supported_data_rates_5g (identityref)

    YANG Description: 5GHz Supported data-rates for the SSID.
    """
    return self.__supported_data_rates_5g
      
  def _set_supported_data_rates_5g(self, v, load=False):
    """
    Setter method for supported_data_rates_5g, mapped from YANG variable /ssids/ssid/state/supported_data_rates_5g (identityref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_supported_data_rates_5g is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_supported_data_rates_5g() directly.

    YANG Description: 5GHz Supported data-rates for the SSID.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="supported-data-rates-5g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='identityref', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """supported_data_rates_5g must be of a type compatible with identityref""",
          'defined-type': "openconfig-wifi-mac:identityref",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="supported-data-rates-5g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='identityref', is_config=False)""",
        })

    self.__supported_data_rates_5g = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_supported_data_rates_5g(self):
    self.__supported_data_rates_5g = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="supported-data-rates-5g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='identityref', is_config=False)


  def _get_basic_data_rates_6g(self):
    """
    Getter method for basic_data_rates_6g, mapped from YANG variable /ssids/ssid/state/basic_data_rates_6g (identityref)

    YANG Description: 6GHz Basic data-rates for the SSID.
    """
    return self.__basic_data_rates_6g
      
  def _set_basic_data_rates_6g(self, v, load=False):
    """
    Setter method for basic_data_rates_6g, mapped from YANG variable /ssids/ssid/state/basic_data_rates_6g (identityref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_basic_data_rates_6g is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_basic_data_rates_6g() directly.

    YANG Description: 6GHz Basic data-rates for the SSID.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="basic-data-rates-6g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='identityref', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """basic_data_rates_6g must be of a type compatible with identityref""",
          'defined-type': "openconfig-wifi-mac:identityref",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="basic-data-rates-6g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='identityref', is_config=False)""",
        })

    self.__basic_data_rates_6g = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_basic_data_rates_6g(self):
    self.__basic_data_rates_6g = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="basic-data-rates-6g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='identityref', is_config=False)


  def _get_supported_data_rates_6g(self):
    """
    Getter method for supported_data_rates_6g, mapped from YANG variable /ssids/ssid/state/supported_data_rates_6g (identityref)

    YANG Description: 6GHz Supported data-rates for the SSID.
    """
    return self.__supported_data_rates_6g
      
  def _set_supported_data_rates_6g(self, v, load=False):
    """
    Setter method for supported_data_rates_6g, mapped from YANG variable /ssids/ssid/state/supported_data_rates_6g (identityref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_supported_data_rates_6g is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_supported_data_rates_6g() directly.

    YANG Description: 6GHz Supported data-rates for the SSID.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="supported-data-rates-6g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='identityref', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """supported_data_rates_6g must be of a type compatible with identityref""",
          'defined-type': "openconfig-wifi-mac:identityref",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="supported-data-rates-6g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='identityref', is_config=False)""",
        })

    self.__supported_data_rates_6g = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_supported_data_rates_6g(self):
    self.__supported_data_rates_6g = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_1MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_2MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_5.5MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_6MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_9MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_11MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_12MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_18MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_24MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_36MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_48MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:RATE_54MB': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="supported-data-rates-6g", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='identityref', is_config=False)


  def _get_broadcast_filter(self):
    """
    Getter method for broadcast_filter, mapped from YANG variable /ssids/ssid/state/broadcast_filter (boolean)

    YANG Description: Convert all downstream broadcast ARP to unicast
only if Station is associated to the AP. Drop packet
if Station is not associated to the AP. All other
broadcast, except DHCP, is dropped by the AP.

DHCP Offers/ACKs are converted to Unicast, over-the-air.
    """
    return self.__broadcast_filter
      
  def _set_broadcast_filter(self, v, load=False):
    """
    Setter method for broadcast_filter, mapped from YANG variable /ssids/ssid/state/broadcast_filter (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_broadcast_filter is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_broadcast_filter() directly.

    YANG Description: Convert all downstream broadcast ARP to unicast
only if Station is associated to the AP. Drop packet
if Station is not associated to the AP. All other
broadcast, except DHCP, is dropped by the AP.

DHCP Offers/ACKs are converted to Unicast, over-the-air.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="broadcast-filter", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """broadcast_filter must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="broadcast-filter", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)""",
        })

    self.__broadcast_filter = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_broadcast_filter(self):
    self.__broadcast_filter = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="broadcast-filter", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)


  def _get_multicast_filter(self):
    """
    Getter method for multicast_filter, mapped from YANG variable /ssids/ssid/state/multicast_filter (boolean)

    YANG Description: Drop all downstream Multicast packets.
    """
    return self.__multicast_filter
      
  def _set_multicast_filter(self, v, load=False):
    """
    Setter method for multicast_filter, mapped from YANG variable /ssids/ssid/state/multicast_filter (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_multicast_filter is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_multicast_filter() directly.

    YANG Description: Drop all downstream Multicast packets.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="multicast-filter", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """multicast_filter must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="multicast-filter", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)""",
        })

    self.__multicast_filter = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_multicast_filter(self):
    self.__multicast_filter = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="multicast-filter", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)


  def _get_ipv6_ndp_filter(self):
    """
    Getter method for ipv6_ndp_filter, mapped from YANG variable /ssids/ssid/state/ipv6_ndp_filter (boolean)

    YANG Description: Neighbor Advertisements will be cached at the AP (or WLC)
and unicast in response to Neighbor Solicitations.

Router Advertisements, in response to a Router Solicitation
are converted to Unicast for over-the-air transmission.
    """
    return self.__ipv6_ndp_filter
      
  def _set_ipv6_ndp_filter(self, v, load=False):
    """
    Setter method for ipv6_ndp_filter, mapped from YANG variable /ssids/ssid/state/ipv6_ndp_filter (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ipv6_ndp_filter is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ipv6_ndp_filter() directly.

    YANG Description: Neighbor Advertisements will be cached at the AP (or WLC)
and unicast in response to Neighbor Solicitations.

Router Advertisements, in response to a Router Solicitation
are converted to Unicast for over-the-air transmission.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="ipv6-ndp-filter", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ipv6_ndp_filter must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="ipv6-ndp-filter", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)""",
        })

    self.__ipv6_ndp_filter = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ipv6_ndp_filter(self):
    self.__ipv6_ndp_filter = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="ipv6-ndp-filter", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)


  def _get_ipv6_ndp_filter_timer(self):
    """
    Getter method for ipv6_ndp_filter_timer, mapped from YANG variable /ssids/ssid/state/ipv6_ndp_filter_timer (uint16)

    YANG Description: Time, in seconds, the ndp-filter will cache
Neighbor Advertisements (NA).
    """
    return self.__ipv6_ndp_filter_timer
      
  def _set_ipv6_ndp_filter_timer(self, v, load=False):
    """
    Setter method for ipv6_ndp_filter_timer, mapped from YANG variable /ssids/ssid/state/ipv6_ndp_filter_timer (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ipv6_ndp_filter_timer is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ipv6_ndp_filter_timer() directly.

    YANG Description: Time, in seconds, the ndp-filter will cache
Neighbor Advertisements (NA).
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="ipv6-ndp-filter-timer", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint16', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ipv6_ndp_filter_timer must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="ipv6-ndp-filter-timer", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint16', is_config=False)""",
        })

    self.__ipv6_ndp_filter_timer = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ipv6_ndp_filter_timer(self):
    self.__ipv6_ndp_filter_timer = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="ipv6-ndp-filter-timer", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint16', is_config=False)


  def _get_station_isolation(self):
    """
    Getter method for station_isolation, mapped from YANG variable /ssids/ssid/state/station_isolation (boolean)

    YANG Description: Block Station peer to peer communication.
    """
    return self.__station_isolation
      
  def _set_station_isolation(self, v, load=False):
    """
    Setter method for station_isolation, mapped from YANG variable /ssids/ssid/state/station_isolation (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_station_isolation is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_station_isolation() directly.

    YANG Description: Block Station peer to peer communication.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="station-isolation", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """station_isolation must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="station-isolation", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)""",
        })

    self.__station_isolation = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_station_isolation(self):
    self.__station_isolation = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="station-isolation", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)


  def _get_opmode(self):
    """
    Getter method for opmode, mapped from YANG variable /ssids/ssid/state/opmode (enumeration)

    YANG Description: The type of Layer2 authentication in use.
    """
    return self.__opmode
      
  def _set_opmode(self, v, load=False):
    """
    Setter method for opmode, mapped from YANG variable /ssids/ssid/state/opmode (enumeration)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_opmode is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_opmode() directly.

    YANG Description: The type of Layer2 authentication in use.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OPEN': {}, 'WPA2_PERSONAL': {}, 'WPA2_ENTERPRISE': {}, 'ENHANCED_OPEN': {}, 'WPA3_SAE': {}, 'WPA3_ENTERPRISE': {}, 'WPA3_ENTERPRISE_192_BIT': {}},), is_leaf=True, yang_name="opmode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='enumeration', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """opmode must be of a type compatible with enumeration""",
          'defined-type': "openconfig-wifi-mac:enumeration",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OPEN': {}, 'WPA2_PERSONAL': {}, 'WPA2_ENTERPRISE': {}, 'ENHANCED_OPEN': {}, 'WPA3_SAE': {}, 'WPA3_ENTERPRISE': {}, 'WPA3_ENTERPRISE_192_BIT': {}},), is_leaf=True, yang_name="opmode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='enumeration', is_config=False)""",
        })

    self.__opmode = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_opmode(self):
    self.__opmode = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OPEN': {}, 'WPA2_PERSONAL': {}, 'WPA2_ENTERPRISE': {}, 'ENHANCED_OPEN': {}, 'WPA3_SAE': {}, 'WPA3_ENTERPRISE': {}, 'WPA3_ENTERPRISE_192_BIT': {}},), is_leaf=True, yang_name="opmode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='enumeration', is_config=False)


  def _get_wpa2_psk(self):
    """
    Getter method for wpa2_psk, mapped from YANG variable /ssids/ssid/state/wpa2_psk (string)

    YANG Description: The passphrase used on this WPA2-Personal SSID.
    """
    return self.__wpa2_psk
      
  def _set_wpa2_psk(self, v, load=False):
    """
    Setter method for wpa2_psk, mapped from YANG variable /ssids/ssid/state/wpa2_psk (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_wpa2_psk is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_wpa2_psk() directly.

    YANG Description: The passphrase used on this WPA2-Personal SSID.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'length': ['8..63']}), is_leaf=True, yang_name="wpa2-psk", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='string', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """wpa2_psk must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'length': ['8..63']}), is_leaf=True, yang_name="wpa2-psk", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='string', is_config=False)""",
        })

    self.__wpa2_psk = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_wpa2_psk(self):
    self.__wpa2_psk = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'length': ['8..63']}), is_leaf=True, yang_name="wpa2-psk", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='string', is_config=False)


  def _get_wpa3_psk(self):
    """
    Getter method for wpa3_psk, mapped from YANG variable /ssids/ssid/state/wpa3_psk (string)

    YANG Description: The passphrase used on this WPA3-SAE SSID.
    """
    return self.__wpa3_psk
      
  def _set_wpa3_psk(self, v, load=False):
    """
    Setter method for wpa3_psk, mapped from YANG variable /ssids/ssid/state/wpa3_psk (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_wpa3_psk is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_wpa3_psk() directly.

    YANG Description: The passphrase used on this WPA3-SAE SSID.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'length': ['8..63']}), is_leaf=True, yang_name="wpa3-psk", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='string', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """wpa3_psk must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'length': ['8..63']}), is_leaf=True, yang_name="wpa3-psk", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='string', is_config=False)""",
        })

    self.__wpa3_psk = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_wpa3_psk(self):
    self.__wpa3_psk = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'length': ['8..63']}), is_leaf=True, yang_name="wpa3-psk", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='string', is_config=False)


  def _get_server_group(self):
    """
    Getter method for server_group, mapped from YANG variable /ssids/ssid/state/server_group (string)

    YANG Description: Specifies the RADIUS server-group to be used,
as defined in the openconfig-aaa.yang model.

Including WPA2_PERSONAL and WPA3_SAE as they can be accompanied by
MAB.
    """
    return self.__server_group
      
  def _set_server_group(self, v, load=False):
    """
    Setter method for server_group, mapped from YANG variable /ssids/ssid/state/server_group (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_server_group is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_server_group() directly.

    YANG Description: Specifies the RADIUS server-group to be used,
as defined in the openconfig-aaa.yang model.

Including WPA2_PERSONAL and WPA3_SAE as they can be accompanied by
MAB.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="server-group", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='string', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """server_group must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="server-group", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='string', is_config=False)""",
        })

    self.__server_group = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_server_group(self):
    self.__server_group = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="server-group", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='string', is_config=False)


  def _get_dva(self):
    """
    Getter method for dva, mapped from YANG variable /ssids/ssid/state/dva (boolean)

    YANG Description: Enable/disable Dynamic VLAN Assignment,
using 'Tunnel-Private-Group-Id' RADIUS attribute.
    """
    return self.__dva
      
  def _set_dva(self, v, load=False):
    """
    Setter method for dva, mapped from YANG variable /ssids/ssid/state/dva (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dva is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dva() directly.

    YANG Description: Enable/disable Dynamic VLAN Assignment,
using 'Tunnel-Private-Group-Id' RADIUS attribute.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="dva", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dva must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dva", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)""",
        })

    self.__dva = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dva(self):
    self.__dva = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dva", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)


  def _get_dhcp_required(self):
    """
    Getter method for dhcp_required, mapped from YANG variable /ssids/ssid/state/dhcp_required (boolean)

    YANG Description: Allow a Station to access the network only if
a DHCP exchange has occurred.
    """
    return self.__dhcp_required
      
  def _set_dhcp_required(self, v, load=False):
    """
    Setter method for dhcp_required, mapped from YANG variable /ssids/ssid/state/dhcp_required (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dhcp_required is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dhcp_required() directly.

    YANG Description: Allow a Station to access the network only if
a DHCP exchange has occurred.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="dhcp-required", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dhcp_required must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dhcp-required", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)""",
        })

    self.__dhcp_required = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dhcp_required(self):
    self.__dhcp_required = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dhcp-required", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)


  def _get_qbss_load(self):
    """
    Getter method for qbss_load, mapped from YANG variable /ssids/ssid/state/qbss_load (boolean)

    YANG Description: Advertisement of the QBSS Load Information Element.
    """
    return self.__qbss_load
      
  def _set_qbss_load(self, v, load=False):
    """
    Setter method for qbss_load, mapped from YANG variable /ssids/ssid/state/qbss_load (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_qbss_load is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_qbss_load() directly.

    YANG Description: Advertisement of the QBSS Load Information Element.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="qbss-load", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """qbss_load must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="qbss-load", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)""",
        })

    self.__qbss_load = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_qbss_load(self):
    self.__qbss_load = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="qbss-load", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)


  def _get_advertise_apname(self):
    """
    Getter method for advertise_apname, mapped from YANG variable /ssids/ssid/state/advertise_apname (boolean)

    YANG Description: Advertise the AP hostname in Beacon and Probe Response frames.
    """
    return self.__advertise_apname
      
  def _set_advertise_apname(self, v, load=False):
    """
    Setter method for advertise_apname, mapped from YANG variable /ssids/ssid/state/advertise_apname (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_advertise_apname is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_advertise_apname() directly.

    YANG Description: Advertise the AP hostname in Beacon and Probe Response frames.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="advertise-apname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """advertise_apname must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="advertise-apname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)""",
        })

    self.__advertise_apname = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_advertise_apname(self):
    self.__advertise_apname = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="advertise-apname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)


  def _get_csa(self):
    """
    Getter method for csa, mapped from YANG variable /ssids/ssid/state/csa (boolean)

    YANG Description: Enable/Disable 802.11h channel-switch-announcement.
    """
    return self.__csa
      
  def _set_csa(self, v, load=False):
    """
    Setter method for csa, mapped from YANG variable /ssids/ssid/state/csa (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_csa is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_csa() directly.

    YANG Description: Enable/Disable 802.11h channel-switch-announcement.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="csa", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """csa must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="csa", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)""",
        })

    self.__csa = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_csa(self):
    self.__csa = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="csa", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)


  def _get_ptk_timeout(self):
    """
    Getter method for ptk_timeout, mapped from YANG variable /ssids/ssid/state/ptk_timeout (uint16)

    YANG Description: Time, in seconds, for the Pairwise Transient Key.
    """
    return self.__ptk_timeout
      
  def _set_ptk_timeout(self, v, load=False):
    """
    Setter method for ptk_timeout, mapped from YANG variable /ssids/ssid/state/ptk_timeout (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ptk_timeout is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ptk_timeout() directly.

    YANG Description: Time, in seconds, for the Pairwise Transient Key.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="ptk-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint16', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ptk_timeout must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="ptk-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint16', is_config=False)""",
        })

    self.__ptk_timeout = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ptk_timeout(self):
    self.__ptk_timeout = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="ptk-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint16', is_config=False)


  def _get_gtk_timeout(self):
    """
    Getter method for gtk_timeout, mapped from YANG variable /ssids/ssid/state/gtk_timeout (uint16)

    YANG Description: TTL for the Group Temporal Key.
    """
    return self.__gtk_timeout
      
  def _set_gtk_timeout(self, v, load=False):
    """
    Setter method for gtk_timeout, mapped from YANG variable /ssids/ssid/state/gtk_timeout (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_gtk_timeout is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_gtk_timeout() directly.

    YANG Description: TTL for the Group Temporal Key.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="gtk-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint16', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """gtk_timeout must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="gtk-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint16', is_config=False)""",
        })

    self.__gtk_timeout = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_gtk_timeout(self):
    self.__gtk_timeout = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="gtk-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint16', is_config=False)


  def _get_dot11k(self):
    """
    Getter method for dot11k, mapped from YANG variable /ssids/ssid/state/dot11k (boolean)

    YANG Description: 802.11k neighbor-list enabled/disabled.
    """
    return self.__dot11k
      
  def _set_dot11k(self, v, load=False):
    """
    Setter method for dot11k, mapped from YANG variable /ssids/ssid/state/dot11k (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dot11k is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dot11k() directly.

    YANG Description: 802.11k neighbor-list enabled/disabled.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="dot11k", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dot11k must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dot11k", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)""",
        })

    self.__dot11k = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dot11k(self):
    self.__dot11k = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dot11k", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)


  def _get_okc(self):
    """
    Getter method for okc, mapped from YANG variable /ssids/ssid/state/okc (boolean)

    YANG Description: Enable/disable Opportunistic Key Caching.
    """
    return self.__okc
      
  def _set_okc(self, v, load=False):
    """
    Setter method for okc, mapped from YANG variable /ssids/ssid/state/okc (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_okc is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_okc() directly.

    YANG Description: Enable/disable Opportunistic Key Caching.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="okc", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """okc must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="okc", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)""",
        })

    self.__okc = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_okc(self):
    self.__okc = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="okc", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)


  def _get_mfp(self):
    """
    Getter method for mfp, mapped from YANG variable /ssids/ssid/state/mfp (boolean)

    YANG Description: Management Frame Protection is required for WPA3 and OWE.
    """
    return self.__mfp
      
  def _set_mfp(self, v, load=False):
    """
    Setter method for mfp, mapped from YANG variable /ssids/ssid/state/mfp (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mfp is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mfp() directly.

    YANG Description: Management Frame Protection is required for WPA3 and OWE.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="mfp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mfp must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="mfp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)""",
        })

    self.__mfp = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mfp(self):
    self.__mfp = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="mfp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)

  name = __builtin__.property(_get_name)
  enabled = __builtin__.property(_get_enabled)
  hidden = __builtin__.property(_get_hidden)
  default_vlan = __builtin__.property(_get_default_vlan)
  vlan_list = __builtin__.property(_get_vlan_list)
  operating_frequency = __builtin__.property(_get_operating_frequency)
  basic_data_rates_2g = __builtin__.property(_get_basic_data_rates_2g)
  supported_data_rates_2g = __builtin__.property(_get_supported_data_rates_2g)
  basic_data_rates_5g = __builtin__.property(_get_basic_data_rates_5g)
  supported_data_rates_5g = __builtin__.property(_get_supported_data_rates_5g)
  basic_data_rates_6g = __builtin__.property(_get_basic_data_rates_6g)
  supported_data_rates_6g = __builtin__.property(_get_supported_data_rates_6g)
  broadcast_filter = __builtin__.property(_get_broadcast_filter)
  multicast_filter = __builtin__.property(_get_multicast_filter)
  ipv6_ndp_filter = __builtin__.property(_get_ipv6_ndp_filter)
  ipv6_ndp_filter_timer = __builtin__.property(_get_ipv6_ndp_filter_timer)
  station_isolation = __builtin__.property(_get_station_isolation)
  opmode = __builtin__.property(_get_opmode)
  wpa2_psk = __builtin__.property(_get_wpa2_psk)
  wpa3_psk = __builtin__.property(_get_wpa3_psk)
  server_group = __builtin__.property(_get_server_group)
  dva = __builtin__.property(_get_dva)
  dhcp_required = __builtin__.property(_get_dhcp_required)
  qbss_load = __builtin__.property(_get_qbss_load)
  advertise_apname = __builtin__.property(_get_advertise_apname)
  csa = __builtin__.property(_get_csa)
  ptk_timeout = __builtin__.property(_get_ptk_timeout)
  gtk_timeout = __builtin__.property(_get_gtk_timeout)
  dot11k = __builtin__.property(_get_dot11k)
  okc = __builtin__.property(_get_okc)
  mfp = __builtin__.property(_get_mfp)


  _pyangbind_elements = OrderedDict([('name', name), ('enabled', enabled), ('hidden', hidden), ('default_vlan', default_vlan), ('vlan_list', vlan_list), ('operating_frequency', operating_frequency), ('basic_data_rates_2g', basic_data_rates_2g), ('supported_data_rates_2g', supported_data_rates_2g), ('basic_data_rates_5g', basic_data_rates_5g), ('supported_data_rates_5g', supported_data_rates_5g), ('basic_data_rates_6g', basic_data_rates_6g), ('supported_data_rates_6g', supported_data_rates_6g), ('broadcast_filter', broadcast_filter), ('multicast_filter', multicast_filter), ('ipv6_ndp_filter', ipv6_ndp_filter), ('ipv6_ndp_filter_timer', ipv6_ndp_filter_timer), ('station_isolation', station_isolation), ('opmode', opmode), ('wpa2_psk', wpa2_psk), ('wpa3_psk', wpa3_psk), ('server_group', server_group), ('dva', dva), ('dhcp_required', dhcp_required), ('qbss_load', qbss_load), ('advertise_apname', advertise_apname), ('csa', csa), ('ptk_timeout', ptk_timeout), ('gtk_timeout', gtk_timeout), ('dot11k', dot11k), ('okc', okc), ('mfp', mfp), ])


class yc_rx_data_dist_openconfig_wifi_mac__ssids_ssid_bssids_bssid_state_counters_rx_data_dist(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-wifi-mac - based on the path /ssids/ssid/bssids/bssid/state/counters/rx-data-dist. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: The distribution of Data frame sizes in bytes of
successfully received AMPDU, or MPDU for non-aggregated,
frames. The distribution should characterize frame sizes
starting at 64 bytes or less with the bin size doubling for
each successive bin to a maximum of 1MB or larger, as
represented in the following table:

Lower Bound Upper Bound
  0          64
  65         128
  129        256
  257        512
  513        1024
  1025       2048
  2049       4096
  4097       8192
  8193       16384
  16385      32768
  32769      65536
  65537      131072
  131073     262144
  262145     524288
  524289     1048576
  """
  __slots__ = ('_path_helper', '_extmethods', '__rx_0_64','__rx_65_128','__rx_129_256','__rx_257_512','__rx_513_1024','__rx_1025_2048','__rx_2049_4096','__rx_4097_8192','__rx_8193_16384','__rx_16385_32768','__rx_32769_65536','__rx_65537_131072','__rx_131073_262144','__rx_262145_524288','__rx_524289_1048576',)

  _yang_name = 'rx-data-dist'
  _yang_namespace = 'http://openconfig.net/yang/wifi-mac'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__rx_0_64 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-0-64", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__rx_65_128 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-65-128", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__rx_129_256 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-129-256", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__rx_257_512 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-257-512", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__rx_513_1024 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-513-1024", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__rx_1025_2048 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-1025-2048", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__rx_2049_4096 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-2049-4096", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__rx_4097_8192 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-4097-8192", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__rx_8193_16384 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-8193-16384", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__rx_16385_32768 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-16385-32768", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__rx_32769_65536 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-32769-65536", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__rx_65537_131072 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-65537-131072", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__rx_131073_262144 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-131073-262144", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__rx_262145_524288 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-262145-524288", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__rx_524289_1048576 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-524289-1048576", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', 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 ['ssids', 'ssid', 'bssids', 'bssid', 'state', 'counters', 'rx-data-dist']

  def _get_rx_0_64(self):
    """
    Getter method for rx_0_64, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_data_dist/rx_0_64 (oc-yang:counter64)

    YANG Description: Transmitted AMPDU or MPDUs from 0 to 64 Bytes.
    """
    return self.__rx_0_64
      
  def _set_rx_0_64(self, v, load=False):
    """
    Setter method for rx_0_64, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_data_dist/rx_0_64 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_0_64 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_0_64() directly.

    YANG Description: Transmitted AMPDU or MPDUs from 0 to 64 Bytes.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-0-64", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_0_64 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-0-64", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__rx_0_64 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rx_0_64(self):
    self.__rx_0_64 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-0-64", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_rx_65_128(self):
    """
    Getter method for rx_65_128, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_data_dist/rx_65_128 (oc-yang:counter64)

    YANG Description: Transmitted AMPDU or MPDUs from 65 to 128 Bytes.
    """
    return self.__rx_65_128
      
  def _set_rx_65_128(self, v, load=False):
    """
    Setter method for rx_65_128, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_data_dist/rx_65_128 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_65_128 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_65_128() directly.

    YANG Description: Transmitted AMPDU or MPDUs from 65 to 128 Bytes.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-65-128", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_65_128 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-65-128", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__rx_65_128 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rx_65_128(self):
    self.__rx_65_128 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-65-128", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_rx_129_256(self):
    """
    Getter method for rx_129_256, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_data_dist/rx_129_256 (oc-yang:counter64)

    YANG Description: Transmitted AMPDU or MPDUs from 129 to 256 Bytes.
    """
    return self.__rx_129_256
      
  def _set_rx_129_256(self, v, load=False):
    """
    Setter method for rx_129_256, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_data_dist/rx_129_256 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_129_256 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_129_256() directly.

    YANG Description: Transmitted AMPDU or MPDUs from 129 to 256 Bytes.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-129-256", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_129_256 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-129-256", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__rx_129_256 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rx_129_256(self):
    self.__rx_129_256 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-129-256", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_rx_257_512(self):
    """
    Getter method for rx_257_512, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_data_dist/rx_257_512 (oc-yang:counter64)

    YANG Description: Transmitted AMPDU or MPDUs from 257 to 512 Bytes.
    """
    return self.__rx_257_512
      
  def _set_rx_257_512(self, v, load=False):
    """
    Setter method for rx_257_512, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_data_dist/rx_257_512 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_257_512 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_257_512() directly.

    YANG Description: Transmitted AMPDU or MPDUs from 257 to 512 Bytes.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-257-512", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_257_512 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-257-512", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__rx_257_512 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rx_257_512(self):
    self.__rx_257_512 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-257-512", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_rx_513_1024(self):
    """
    Getter method for rx_513_1024, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_data_dist/rx_513_1024 (oc-yang:counter64)

    YANG Description: Transmitted AMPDU or MPDUs from 513 to 1024 Bytes.
    """
    return self.__rx_513_1024
      
  def _set_rx_513_1024(self, v, load=False):
    """
    Setter method for rx_513_1024, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_data_dist/rx_513_1024 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_513_1024 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_513_1024() directly.

    YANG Description: Transmitted AMPDU or MPDUs from 513 to 1024 Bytes.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-513-1024", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_513_1024 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-513-1024", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__rx_513_1024 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rx_513_1024(self):
    self.__rx_513_1024 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-513-1024", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_rx_1025_2048(self):
    """
    Getter method for rx_1025_2048, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_data_dist/rx_1025_2048 (oc-yang:counter64)

    YANG Description: Transmitted AMPDU or MPDUs from 1025 to 2048 Bytes.
    """
    return self.__rx_1025_2048
      
  def _set_rx_1025_2048(self, v, load=False):
    """
    Setter method for rx_1025_2048, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_data_dist/rx_1025_2048 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_1025_2048 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_1025_2048() directly.

    YANG Description: Transmitted AMPDU or MPDUs from 1025 to 2048 Bytes.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-1025-2048", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_1025_2048 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-1025-2048", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__rx_1025_2048 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rx_1025_2048(self):
    self.__rx_1025_2048 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-1025-2048", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_rx_2049_4096(self):
    """
    Getter method for rx_2049_4096, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_data_dist/rx_2049_4096 (oc-yang:counter64)

    YANG Description: Transmitted AMPDU or MPDUs from 2049 to 4096 Bytes.
    """
    return self.__rx_2049_4096
      
  def _set_rx_2049_4096(self, v, load=False):
    """
    Setter method for rx_2049_4096, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_data_dist/rx_2049_4096 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_2049_4096 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_2049_4096() directly.

    YANG Description: Transmitted AMPDU or MPDUs from 2049 to 4096 Bytes.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-2049-4096", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_2049_4096 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-2049-4096", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__rx_2049_4096 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rx_2049_4096(self):
    self.__rx_2049_4096 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-2049-4096", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_rx_4097_8192(self):
    """
    Getter method for rx_4097_8192, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_data_dist/rx_4097_8192 (oc-yang:counter64)

    YANG Description: Transmitted AMPDU or MPDUs from 4097 to 8192 Bytes.
    """
    return self.__rx_4097_8192
      
  def _set_rx_4097_8192(self, v, load=False):
    """
    Setter method for rx_4097_8192, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_data_dist/rx_4097_8192 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_4097_8192 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_4097_8192() directly.

    YANG Description: Transmitted AMPDU or MPDUs from 4097 to 8192 Bytes.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-4097-8192", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_4097_8192 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-4097-8192", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__rx_4097_8192 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rx_4097_8192(self):
    self.__rx_4097_8192 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-4097-8192", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_rx_8193_16384(self):
    """
    Getter method for rx_8193_16384, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_data_dist/rx_8193_16384 (oc-yang:counter64)

    YANG Description: Transmitted AMPDU or MPDUs from 8193 to 16384 Bytes.
    """
    return self.__rx_8193_16384
      
  def _set_rx_8193_16384(self, v, load=False):
    """
    Setter method for rx_8193_16384, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_data_dist/rx_8193_16384 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_8193_16384 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_8193_16384() directly.

    YANG Description: Transmitted AMPDU or MPDUs from 8193 to 16384 Bytes.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-8193-16384", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_8193_16384 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-8193-16384", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__rx_8193_16384 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rx_8193_16384(self):
    self.__rx_8193_16384 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-8193-16384", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_rx_16385_32768(self):
    """
    Getter method for rx_16385_32768, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_data_dist/rx_16385_32768 (oc-yang:counter64)

    YANG Description: Transmitted AMPDU or MPDUs from 16385 to 32768 Bytes.
    """
    return self.__rx_16385_32768
      
  def _set_rx_16385_32768(self, v, load=False):
    """
    Setter method for rx_16385_32768, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_data_dist/rx_16385_32768 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_16385_32768 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_16385_32768() directly.

    YANG Description: Transmitted AMPDU or MPDUs from 16385 to 32768 Bytes.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-16385-32768", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_16385_32768 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-16385-32768", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__rx_16385_32768 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rx_16385_32768(self):
    self.__rx_16385_32768 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-16385-32768", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_rx_32769_65536(self):
    """
    Getter method for rx_32769_65536, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_data_dist/rx_32769_65536 (oc-yang:counter64)

    YANG Description: Transmitted AMPDU or MPDUs from 32769 to 65536 Bytes.
    """
    return self.__rx_32769_65536
      
  def _set_rx_32769_65536(self, v, load=False):
    """
    Setter method for rx_32769_65536, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_data_dist/rx_32769_65536 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_32769_65536 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_32769_65536() directly.

    YANG Description: Transmitted AMPDU or MPDUs from 32769 to 65536 Bytes.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-32769-65536", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_32769_65536 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-32769-65536", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__rx_32769_65536 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rx_32769_65536(self):
    self.__rx_32769_65536 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-32769-65536", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_rx_65537_131072(self):
    """
    Getter method for rx_65537_131072, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_data_dist/rx_65537_131072 (oc-yang:counter64)

    YANG Description: Transmitted AMPDU from 65537 to 131072 Bytes.
    """
    return self.__rx_65537_131072
      
  def _set_rx_65537_131072(self, v, load=False):
    """
    Setter method for rx_65537_131072, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_data_dist/rx_65537_131072 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_65537_131072 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_65537_131072() directly.

    YANG Description: Transmitted AMPDU from 65537 to 131072 Bytes.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-65537-131072", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_65537_131072 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-65537-131072", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__rx_65537_131072 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rx_65537_131072(self):
    self.__rx_65537_131072 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-65537-131072", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_rx_131073_262144(self):
    """
    Getter method for rx_131073_262144, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_data_dist/rx_131073_262144 (oc-yang:counter64)

    YANG Description: Transmitted AMPDU from 131073 to 262144 Bytes.
    """
    return self.__rx_131073_262144
      
  def _set_rx_131073_262144(self, v, load=False):
    """
    Setter method for rx_131073_262144, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_data_dist/rx_131073_262144 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_131073_262144 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_131073_262144() directly.

    YANG Description: Transmitted AMPDU from 131073 to 262144 Bytes.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-131073-262144", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_131073_262144 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-131073-262144", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__rx_131073_262144 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rx_131073_262144(self):
    self.__rx_131073_262144 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-131073-262144", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_rx_262145_524288(self):
    """
    Getter method for rx_262145_524288, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_data_dist/rx_262145_524288 (oc-yang:counter64)

    YANG Description: Transmitted AMPDU from 262145 to 524288 Bytes.
    """
    return self.__rx_262145_524288
      
  def _set_rx_262145_524288(self, v, load=False):
    """
    Setter method for rx_262145_524288, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_data_dist/rx_262145_524288 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_262145_524288 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_262145_524288() directly.

    YANG Description: Transmitted AMPDU from 262145 to 524288 Bytes.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-262145-524288", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_262145_524288 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-262145-524288", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__rx_262145_524288 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rx_262145_524288(self):
    self.__rx_262145_524288 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-262145-524288", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_rx_524289_1048576(self):
    """
    Getter method for rx_524289_1048576, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_data_dist/rx_524289_1048576 (oc-yang:counter64)

    YANG Description: Transmitted AMPDU from 524289 to 1048576 Bytes.
    """
    return self.__rx_524289_1048576
      
  def _set_rx_524289_1048576(self, v, load=False):
    """
    Setter method for rx_524289_1048576, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_data_dist/rx_524289_1048576 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_524289_1048576 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_524289_1048576() directly.

    YANG Description: Transmitted AMPDU from 524289 to 1048576 Bytes.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-524289-1048576", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_524289_1048576 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-524289-1048576", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__rx_524289_1048576 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rx_524289_1048576(self):
    self.__rx_524289_1048576 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-524289-1048576", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)

  rx_0_64 = __builtin__.property(_get_rx_0_64)
  rx_65_128 = __builtin__.property(_get_rx_65_128)
  rx_129_256 = __builtin__.property(_get_rx_129_256)
  rx_257_512 = __builtin__.property(_get_rx_257_512)
  rx_513_1024 = __builtin__.property(_get_rx_513_1024)
  rx_1025_2048 = __builtin__.property(_get_rx_1025_2048)
  rx_2049_4096 = __builtin__.property(_get_rx_2049_4096)
  rx_4097_8192 = __builtin__.property(_get_rx_4097_8192)
  rx_8193_16384 = __builtin__.property(_get_rx_8193_16384)
  rx_16385_32768 = __builtin__.property(_get_rx_16385_32768)
  rx_32769_65536 = __builtin__.property(_get_rx_32769_65536)
  rx_65537_131072 = __builtin__.property(_get_rx_65537_131072)
  rx_131073_262144 = __builtin__.property(_get_rx_131073_262144)
  rx_262145_524288 = __builtin__.property(_get_rx_262145_524288)
  rx_524289_1048576 = __builtin__.property(_get_rx_524289_1048576)


  _pyangbind_elements = OrderedDict([('rx_0_64', rx_0_64), ('rx_65_128', rx_65_128), ('rx_129_256', rx_129_256), ('rx_257_512', rx_257_512), ('rx_513_1024', rx_513_1024), ('rx_1025_2048', rx_1025_2048), ('rx_2049_4096', rx_2049_4096), ('rx_4097_8192', rx_4097_8192), ('rx_8193_16384', rx_8193_16384), ('rx_16385_32768', rx_16385_32768), ('rx_32769_65536', rx_32769_65536), ('rx_65537_131072', rx_65537_131072), ('rx_131073_262144', rx_131073_262144), ('rx_262145_524288', rx_262145_524288), ('rx_524289_1048576', rx_524289_1048576), ])


class yc_rx_data_wmm_openconfig_wifi_mac__ssids_ssid_bssids_bssid_state_counters_rx_data_wmm(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-wifi-mac - based on the path /ssids/ssid/bssids/bssid/state/counters/rx-data-wmm. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Received 802.11 Data frames, per WMM Access Category.
  """
  __slots__ = ('_path_helper', '_extmethods', '__vi','__vo','__be','__bk',)

  _yang_name = 'rx-data-wmm'
  _yang_namespace = 'http://openconfig.net/yang/wifi-mac'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__vi = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="vi", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__vo = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="vo", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__be = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="be", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__bk = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="bk", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', 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 ['ssids', 'ssid', 'bssids', 'bssid', 'state', 'counters', 'rx-data-wmm']

  def _get_vi(self):
    """
    Getter method for vi, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_data_wmm/vi (oc-yang:counter64)

    YANG Description: Rx Data frames marked as Access Category Video.
    """
    return self.__vi
      
  def _set_vi(self, v, load=False):
    """
    Setter method for vi, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_data_wmm/vi (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_vi is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_vi() directly.

    YANG Description: Rx Data frames marked as Access Category Video.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="vi", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """vi must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="vi", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__vi = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_vi(self):
    self.__vi = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="vi", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_vo(self):
    """
    Getter method for vo, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_data_wmm/vo (oc-yang:counter64)

    YANG Description: Rx Data frames marked as Access Category Voice.
    """
    return self.__vo
      
  def _set_vo(self, v, load=False):
    """
    Setter method for vo, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_data_wmm/vo (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_vo is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_vo() directly.

    YANG Description: Rx Data frames marked as Access Category Voice.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="vo", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """vo must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="vo", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__vo = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_vo(self):
    self.__vo = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="vo", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_be(self):
    """
    Getter method for be, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_data_wmm/be (oc-yang:counter64)

    YANG Description: Rx Data frames marked as Access Category Best Effort.
    """
    return self.__be
      
  def _set_be(self, v, load=False):
    """
    Setter method for be, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_data_wmm/be (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_be is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_be() directly.

    YANG Description: Rx Data frames marked as Access Category Best Effort.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="be", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """be must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="be", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__be = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_be(self):
    self.__be = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="be", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_bk(self):
    """
    Getter method for bk, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_data_wmm/bk (oc-yang:counter64)

    YANG Description: Rx Data frames marked as Access Category Background.
    """
    return self.__bk
      
  def _set_bk(self, v, load=False):
    """
    Setter method for bk, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_data_wmm/bk (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_bk is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_bk() directly.

    YANG Description: Rx Data frames marked as Access Category Background.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="bk", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """bk must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="bk", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__bk = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_bk(self):
    self.__bk = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="bk", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)

  vi = __builtin__.property(_get_vi)
  vo = __builtin__.property(_get_vo)
  be = __builtin__.property(_get_be)
  bk = __builtin__.property(_get_bk)


  _pyangbind_elements = OrderedDict([('vi', vi), ('vo', vo), ('be', be), ('bk', bk), ])


class yc_rx_mcs_openconfig_wifi_mac__ssids_ssid_bssids_bssid_state_counters_rx_mcs(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-wifi-mac - based on the path /ssids/ssid/bssids/bssid/state/counters/rx-mcs. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Received Data frames, per MCS Index. It is expected that
vendors bucketize 802.11n MCS frames in their matching
802.11ac buckets.

Example, 802.11n MCS 15 = 802.11ac MCS 7.
802.11n MCS 20 = 802.11ac MCS 4.
  """
  __slots__ = ('_path_helper', '_extmethods', '__mcs0','__mcs1','__mcs2','__mcs3','__mcs4','__mcs5','__mcs6','__mcs7','__mcs8','__mcs9','__mcs10','__mcs11',)

  _yang_name = 'rx-mcs'
  _yang_namespace = 'http://openconfig.net/yang/wifi-mac'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__mcs0 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs0", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__mcs1 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs1", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__mcs2 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs2", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__mcs3 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs3", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__mcs4 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs4", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__mcs5 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs5", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__mcs6 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs6", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__mcs7 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs7", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__mcs8 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs8", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__mcs9 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs9", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__mcs10 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs10", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__mcs11 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs11", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', 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 ['ssids', 'ssid', 'bssids', 'bssid', 'state', 'counters', 'rx-mcs']

  def _get_mcs0(self):
    """
    Getter method for mcs0, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_mcs/mcs0 (oc-yang:counter64)

    YANG Description: Rx Data frames at MCS 0.
    """
    return self.__mcs0
      
  def _set_mcs0(self, v, load=False):
    """
    Setter method for mcs0, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_mcs/mcs0 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mcs0 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mcs0() directly.

    YANG Description: Rx Data frames at MCS 0.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs0", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mcs0 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs0", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__mcs0 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mcs0(self):
    self.__mcs0 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs0", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_mcs1(self):
    """
    Getter method for mcs1, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_mcs/mcs1 (oc-yang:counter64)

    YANG Description: Rx Data frames at MCS 1.
    """
    return self.__mcs1
      
  def _set_mcs1(self, v, load=False):
    """
    Setter method for mcs1, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_mcs/mcs1 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mcs1 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mcs1() directly.

    YANG Description: Rx Data frames at MCS 1.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs1", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mcs1 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs1", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__mcs1 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mcs1(self):
    self.__mcs1 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs1", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_mcs2(self):
    """
    Getter method for mcs2, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_mcs/mcs2 (oc-yang:counter64)

    YANG Description: Rx Data frames at MCS 2.
    """
    return self.__mcs2
      
  def _set_mcs2(self, v, load=False):
    """
    Setter method for mcs2, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_mcs/mcs2 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mcs2 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mcs2() directly.

    YANG Description: Rx Data frames at MCS 2.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs2", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mcs2 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs2", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__mcs2 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mcs2(self):
    self.__mcs2 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs2", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_mcs3(self):
    """
    Getter method for mcs3, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_mcs/mcs3 (oc-yang:counter64)

    YANG Description: Rx Data frames at MCS 3.
    """
    return self.__mcs3
      
  def _set_mcs3(self, v, load=False):
    """
    Setter method for mcs3, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_mcs/mcs3 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mcs3 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mcs3() directly.

    YANG Description: Rx Data frames at MCS 3.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs3", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mcs3 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs3", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__mcs3 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mcs3(self):
    self.__mcs3 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs3", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_mcs4(self):
    """
    Getter method for mcs4, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_mcs/mcs4 (oc-yang:counter64)

    YANG Description: Rx Data frames at MCS 4.
    """
    return self.__mcs4
      
  def _set_mcs4(self, v, load=False):
    """
    Setter method for mcs4, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_mcs/mcs4 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mcs4 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mcs4() directly.

    YANG Description: Rx Data frames at MCS 4.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs4", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mcs4 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs4", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__mcs4 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mcs4(self):
    self.__mcs4 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs4", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_mcs5(self):
    """
    Getter method for mcs5, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_mcs/mcs5 (oc-yang:counter64)

    YANG Description: Rx Data frames at MCS 5.
    """
    return self.__mcs5
      
  def _set_mcs5(self, v, load=False):
    """
    Setter method for mcs5, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_mcs/mcs5 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mcs5 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mcs5() directly.

    YANG Description: Rx Data frames at MCS 5.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs5", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mcs5 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs5", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__mcs5 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mcs5(self):
    self.__mcs5 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs5", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_mcs6(self):
    """
    Getter method for mcs6, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_mcs/mcs6 (oc-yang:counter64)

    YANG Description: Rx Data frames at MCS 6.
    """
    return self.__mcs6
      
  def _set_mcs6(self, v, load=False):
    """
    Setter method for mcs6, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_mcs/mcs6 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mcs6 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mcs6() directly.

    YANG Description: Rx Data frames at MCS 6.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs6", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mcs6 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs6", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__mcs6 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mcs6(self):
    self.__mcs6 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs6", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_mcs7(self):
    """
    Getter method for mcs7, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_mcs/mcs7 (oc-yang:counter64)

    YANG Description: Rx Data frames at MCS 7.
    """
    return self.__mcs7
      
  def _set_mcs7(self, v, load=False):
    """
    Setter method for mcs7, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_mcs/mcs7 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mcs7 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mcs7() directly.

    YANG Description: Rx Data frames at MCS 7.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs7", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mcs7 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs7", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__mcs7 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mcs7(self):
    self.__mcs7 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs7", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_mcs8(self):
    """
    Getter method for mcs8, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_mcs/mcs8 (oc-yang:counter64)

    YANG Description: Rx Data frames at MCS 8.
    """
    return self.__mcs8
      
  def _set_mcs8(self, v, load=False):
    """
    Setter method for mcs8, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_mcs/mcs8 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mcs8 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mcs8() directly.

    YANG Description: Rx Data frames at MCS 8.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs8", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mcs8 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs8", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__mcs8 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mcs8(self):
    self.__mcs8 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs8", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_mcs9(self):
    """
    Getter method for mcs9, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_mcs/mcs9 (oc-yang:counter64)

    YANG Description: Rx Data frames at MCS 9.
    """
    return self.__mcs9
      
  def _set_mcs9(self, v, load=False):
    """
    Setter method for mcs9, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_mcs/mcs9 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mcs9 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mcs9() directly.

    YANG Description: Rx Data frames at MCS 9.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs9", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mcs9 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs9", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__mcs9 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mcs9(self):
    self.__mcs9 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs9", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_mcs10(self):
    """
    Getter method for mcs10, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_mcs/mcs10 (oc-yang:counter64)

    YANG Description: Rx Data frames at MCS 10.
    """
    return self.__mcs10
      
  def _set_mcs10(self, v, load=False):
    """
    Setter method for mcs10, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_mcs/mcs10 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mcs10 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mcs10() directly.

    YANG Description: Rx Data frames at MCS 10.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs10", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mcs10 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs10", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__mcs10 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mcs10(self):
    self.__mcs10 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs10", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_mcs11(self):
    """
    Getter method for mcs11, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_mcs/mcs11 (oc-yang:counter64)

    YANG Description: Rx Data frames at MCS 11.
    """
    return self.__mcs11
      
  def _set_mcs11(self, v, load=False):
    """
    Setter method for mcs11, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_mcs/mcs11 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mcs11 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mcs11() directly.

    YANG Description: Rx Data frames at MCS 11.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs11", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mcs11 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs11", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__mcs11 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mcs11(self):
    self.__mcs11 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs11", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)

  mcs0 = __builtin__.property(_get_mcs0)
  mcs1 = __builtin__.property(_get_mcs1)
  mcs2 = __builtin__.property(_get_mcs2)
  mcs3 = __builtin__.property(_get_mcs3)
  mcs4 = __builtin__.property(_get_mcs4)
  mcs5 = __builtin__.property(_get_mcs5)
  mcs6 = __builtin__.property(_get_mcs6)
  mcs7 = __builtin__.property(_get_mcs7)
  mcs8 = __builtin__.property(_get_mcs8)
  mcs9 = __builtin__.property(_get_mcs9)
  mcs10 = __builtin__.property(_get_mcs10)
  mcs11 = __builtin__.property(_get_mcs11)


  _pyangbind_elements = OrderedDict([('mcs0', mcs0), ('mcs1', mcs1), ('mcs2', mcs2), ('mcs3', mcs3), ('mcs4', mcs4), ('mcs5', mcs5), ('mcs6', mcs6), ('mcs7', mcs7), ('mcs8', mcs8), ('mcs9', mcs9), ('mcs10', mcs10), ('mcs11', mcs11), ])


class yc_tx_data_dist_openconfig_wifi_mac__ssids_ssid_bssids_bssid_state_counters_tx_data_dist(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-wifi-mac - based on the path /ssids/ssid/bssids/bssid/state/counters/tx-data-dist. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: The distribution of Data frame sizes in bytes of
successfully transmitted AMPDU, or MPDU for non-aggregated,
frames. The distribution should characterize frame sizes
starting at 64 bytes or less with the bin size doubling for
each successive bin to a maximum of 1MB or larger, as
represented in the following table:

Lower Bound Upper Bound
  0          64
  65         128
  129        256
  257        512
  513        1024
  1025       2048
  2049       4096
  4097       8192
  8193       16384
  16385      32768
  32769      65536
  65537      131072
  131073     262144
  262145     524288
  524289     1048576
  """
  __slots__ = ('_path_helper', '_extmethods', '__tx_0_64','__tx_65_128','__tx_129_256','__tx_257_512','__tx_513_1024','__tx_1025_2048','__tx_2049_4096','__tx_4097_8192','__tx_8193_16384','__tx_16385_32768','__tx_32769_65536','__tx_65537_131072','__tx_131073_262144','__tx_262145_524288','__tx_524289_1048576',)

  _yang_name = 'tx-data-dist'
  _yang_namespace = 'http://openconfig.net/yang/wifi-mac'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__tx_0_64 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-0-64", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__tx_65_128 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-65-128", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__tx_129_256 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-129-256", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__tx_257_512 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-257-512", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__tx_513_1024 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-513-1024", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__tx_1025_2048 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-1025-2048", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__tx_2049_4096 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-2049-4096", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__tx_4097_8192 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-4097-8192", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__tx_8193_16384 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-8193-16384", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__tx_16385_32768 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-16385-32768", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__tx_32769_65536 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-32769-65536", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__tx_65537_131072 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-65537-131072", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__tx_131073_262144 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-131073-262144", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__tx_262145_524288 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-262145-524288", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__tx_524289_1048576 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-524289-1048576", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', 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 ['ssids', 'ssid', 'bssids', 'bssid', 'state', 'counters', 'tx-data-dist']

  def _get_tx_0_64(self):
    """
    Getter method for tx_0_64, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_data_dist/tx_0_64 (oc-yang:counter64)

    YANG Description: Transmitted AMPDU or MPDUs from 0 to 64 Bytes.
    """
    return self.__tx_0_64
      
  def _set_tx_0_64(self, v, load=False):
    """
    Setter method for tx_0_64, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_data_dist/tx_0_64 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tx_0_64 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tx_0_64() directly.

    YANG Description: Transmitted AMPDU or MPDUs from 0 to 64 Bytes.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-0-64", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tx_0_64 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-0-64", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__tx_0_64 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_tx_0_64(self):
    self.__tx_0_64 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-0-64", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_tx_65_128(self):
    """
    Getter method for tx_65_128, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_data_dist/tx_65_128 (oc-yang:counter64)

    YANG Description: Transmitted AMPDU or MPDUs from 65 to 128 Bytes.
    """
    return self.__tx_65_128
      
  def _set_tx_65_128(self, v, load=False):
    """
    Setter method for tx_65_128, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_data_dist/tx_65_128 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tx_65_128 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tx_65_128() directly.

    YANG Description: Transmitted AMPDU or MPDUs from 65 to 128 Bytes.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-65-128", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tx_65_128 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-65-128", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__tx_65_128 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_tx_65_128(self):
    self.__tx_65_128 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-65-128", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_tx_129_256(self):
    """
    Getter method for tx_129_256, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_data_dist/tx_129_256 (oc-yang:counter64)

    YANG Description: Transmitted AMPDU or MPDUs from 129 to 256 Bytes.
    """
    return self.__tx_129_256
      
  def _set_tx_129_256(self, v, load=False):
    """
    Setter method for tx_129_256, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_data_dist/tx_129_256 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tx_129_256 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tx_129_256() directly.

    YANG Description: Transmitted AMPDU or MPDUs from 129 to 256 Bytes.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-129-256", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tx_129_256 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-129-256", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__tx_129_256 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_tx_129_256(self):
    self.__tx_129_256 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-129-256", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_tx_257_512(self):
    """
    Getter method for tx_257_512, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_data_dist/tx_257_512 (oc-yang:counter64)

    YANG Description: Transmitted AMPDU or MPDUs from 257 to 512 Bytes.
    """
    return self.__tx_257_512
      
  def _set_tx_257_512(self, v, load=False):
    """
    Setter method for tx_257_512, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_data_dist/tx_257_512 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tx_257_512 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tx_257_512() directly.

    YANG Description: Transmitted AMPDU or MPDUs from 257 to 512 Bytes.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-257-512", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tx_257_512 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-257-512", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__tx_257_512 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_tx_257_512(self):
    self.__tx_257_512 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-257-512", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_tx_513_1024(self):
    """
    Getter method for tx_513_1024, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_data_dist/tx_513_1024 (oc-yang:counter64)

    YANG Description: Transmitted AMPDU or MPDUs from 513 to 1024 Bytes.
    """
    return self.__tx_513_1024
      
  def _set_tx_513_1024(self, v, load=False):
    """
    Setter method for tx_513_1024, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_data_dist/tx_513_1024 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tx_513_1024 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tx_513_1024() directly.

    YANG Description: Transmitted AMPDU or MPDUs from 513 to 1024 Bytes.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-513-1024", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tx_513_1024 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-513-1024", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__tx_513_1024 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_tx_513_1024(self):
    self.__tx_513_1024 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-513-1024", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_tx_1025_2048(self):
    """
    Getter method for tx_1025_2048, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_data_dist/tx_1025_2048 (oc-yang:counter64)

    YANG Description: Transmitted AMPDU or MPDUs from 1025 to 2048 Bytes.
    """
    return self.__tx_1025_2048
      
  def _set_tx_1025_2048(self, v, load=False):
    """
    Setter method for tx_1025_2048, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_data_dist/tx_1025_2048 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tx_1025_2048 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tx_1025_2048() directly.

    YANG Description: Transmitted AMPDU or MPDUs from 1025 to 2048 Bytes.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-1025-2048", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tx_1025_2048 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-1025-2048", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__tx_1025_2048 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_tx_1025_2048(self):
    self.__tx_1025_2048 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-1025-2048", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_tx_2049_4096(self):
    """
    Getter method for tx_2049_4096, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_data_dist/tx_2049_4096 (oc-yang:counter64)

    YANG Description: Transmitted AMPDU or MPDUs from 2049 to 4096 Bytes.
    """
    return self.__tx_2049_4096
      
  def _set_tx_2049_4096(self, v, load=False):
    """
    Setter method for tx_2049_4096, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_data_dist/tx_2049_4096 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tx_2049_4096 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tx_2049_4096() directly.

    YANG Description: Transmitted AMPDU or MPDUs from 2049 to 4096 Bytes.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-2049-4096", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tx_2049_4096 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-2049-4096", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__tx_2049_4096 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_tx_2049_4096(self):
    self.__tx_2049_4096 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-2049-4096", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_tx_4097_8192(self):
    """
    Getter method for tx_4097_8192, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_data_dist/tx_4097_8192 (oc-yang:counter64)

    YANG Description: Transmitted AMPDU or MPDUs from 4097 to 8192 Bytes.
    """
    return self.__tx_4097_8192
      
  def _set_tx_4097_8192(self, v, load=False):
    """
    Setter method for tx_4097_8192, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_data_dist/tx_4097_8192 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tx_4097_8192 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tx_4097_8192() directly.

    YANG Description: Transmitted AMPDU or MPDUs from 4097 to 8192 Bytes.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-4097-8192", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tx_4097_8192 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-4097-8192", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__tx_4097_8192 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_tx_4097_8192(self):
    self.__tx_4097_8192 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-4097-8192", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_tx_8193_16384(self):
    """
    Getter method for tx_8193_16384, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_data_dist/tx_8193_16384 (oc-yang:counter64)

    YANG Description: Transmitted AMPDU or MPDUs from 8193 to 16384 Bytes.
    """
    return self.__tx_8193_16384
      
  def _set_tx_8193_16384(self, v, load=False):
    """
    Setter method for tx_8193_16384, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_data_dist/tx_8193_16384 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tx_8193_16384 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tx_8193_16384() directly.

    YANG Description: Transmitted AMPDU or MPDUs from 8193 to 16384 Bytes.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-8193-16384", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tx_8193_16384 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-8193-16384", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__tx_8193_16384 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_tx_8193_16384(self):
    self.__tx_8193_16384 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-8193-16384", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_tx_16385_32768(self):
    """
    Getter method for tx_16385_32768, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_data_dist/tx_16385_32768 (oc-yang:counter64)

    YANG Description: Transmitted AMPDU or MPDUs from 16385 to 32768 Bytes.
    """
    return self.__tx_16385_32768
      
  def _set_tx_16385_32768(self, v, load=False):
    """
    Setter method for tx_16385_32768, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_data_dist/tx_16385_32768 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tx_16385_32768 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tx_16385_32768() directly.

    YANG Description: Transmitted AMPDU or MPDUs from 16385 to 32768 Bytes.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-16385-32768", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tx_16385_32768 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-16385-32768", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__tx_16385_32768 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_tx_16385_32768(self):
    self.__tx_16385_32768 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-16385-32768", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_tx_32769_65536(self):
    """
    Getter method for tx_32769_65536, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_data_dist/tx_32769_65536 (oc-yang:counter64)

    YANG Description: Transmitted AMPDU or MPDUs from 32769 to 65536 Bytes.
    """
    return self.__tx_32769_65536
      
  def _set_tx_32769_65536(self, v, load=False):
    """
    Setter method for tx_32769_65536, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_data_dist/tx_32769_65536 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tx_32769_65536 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tx_32769_65536() directly.

    YANG Description: Transmitted AMPDU or MPDUs from 32769 to 65536 Bytes.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-32769-65536", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tx_32769_65536 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-32769-65536", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__tx_32769_65536 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_tx_32769_65536(self):
    self.__tx_32769_65536 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-32769-65536", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_tx_65537_131072(self):
    """
    Getter method for tx_65537_131072, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_data_dist/tx_65537_131072 (oc-yang:counter64)

    YANG Description: Transmitted AMPDU from 65537 to 131072 Bytes.
    """
    return self.__tx_65537_131072
      
  def _set_tx_65537_131072(self, v, load=False):
    """
    Setter method for tx_65537_131072, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_data_dist/tx_65537_131072 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tx_65537_131072 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tx_65537_131072() directly.

    YANG Description: Transmitted AMPDU from 65537 to 131072 Bytes.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-65537-131072", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tx_65537_131072 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-65537-131072", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__tx_65537_131072 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_tx_65537_131072(self):
    self.__tx_65537_131072 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-65537-131072", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_tx_131073_262144(self):
    """
    Getter method for tx_131073_262144, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_data_dist/tx_131073_262144 (oc-yang:counter64)

    YANG Description: Transmitted AMPDU from 131073 to 262144 Bytes.
    """
    return self.__tx_131073_262144
      
  def _set_tx_131073_262144(self, v, load=False):
    """
    Setter method for tx_131073_262144, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_data_dist/tx_131073_262144 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tx_131073_262144 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tx_131073_262144() directly.

    YANG Description: Transmitted AMPDU from 131073 to 262144 Bytes.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-131073-262144", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tx_131073_262144 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-131073-262144", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__tx_131073_262144 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_tx_131073_262144(self):
    self.__tx_131073_262144 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-131073-262144", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_tx_262145_524288(self):
    """
    Getter method for tx_262145_524288, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_data_dist/tx_262145_524288 (oc-yang:counter64)

    YANG Description: Transmitted AMPDU from 262145 to 524288 Bytes.
    """
    return self.__tx_262145_524288
      
  def _set_tx_262145_524288(self, v, load=False):
    """
    Setter method for tx_262145_524288, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_data_dist/tx_262145_524288 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tx_262145_524288 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tx_262145_524288() directly.

    YANG Description: Transmitted AMPDU from 262145 to 524288 Bytes.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-262145-524288", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tx_262145_524288 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-262145-524288", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__tx_262145_524288 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_tx_262145_524288(self):
    self.__tx_262145_524288 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-262145-524288", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_tx_524289_1048576(self):
    """
    Getter method for tx_524289_1048576, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_data_dist/tx_524289_1048576 (oc-yang:counter64)

    YANG Description: Transmitted AMPDU from 524289 to 1048576 Bytes.
    """
    return self.__tx_524289_1048576
      
  def _set_tx_524289_1048576(self, v, load=False):
    """
    Setter method for tx_524289_1048576, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_data_dist/tx_524289_1048576 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tx_524289_1048576 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tx_524289_1048576() directly.

    YANG Description: Transmitted AMPDU from 524289 to 1048576 Bytes.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-524289-1048576", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tx_524289_1048576 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-524289-1048576", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__tx_524289_1048576 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_tx_524289_1048576(self):
    self.__tx_524289_1048576 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-524289-1048576", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)

  tx_0_64 = __builtin__.property(_get_tx_0_64)
  tx_65_128 = __builtin__.property(_get_tx_65_128)
  tx_129_256 = __builtin__.property(_get_tx_129_256)
  tx_257_512 = __builtin__.property(_get_tx_257_512)
  tx_513_1024 = __builtin__.property(_get_tx_513_1024)
  tx_1025_2048 = __builtin__.property(_get_tx_1025_2048)
  tx_2049_4096 = __builtin__.property(_get_tx_2049_4096)
  tx_4097_8192 = __builtin__.property(_get_tx_4097_8192)
  tx_8193_16384 = __builtin__.property(_get_tx_8193_16384)
  tx_16385_32768 = __builtin__.property(_get_tx_16385_32768)
  tx_32769_65536 = __builtin__.property(_get_tx_32769_65536)
  tx_65537_131072 = __builtin__.property(_get_tx_65537_131072)
  tx_131073_262144 = __builtin__.property(_get_tx_131073_262144)
  tx_262145_524288 = __builtin__.property(_get_tx_262145_524288)
  tx_524289_1048576 = __builtin__.property(_get_tx_524289_1048576)


  _pyangbind_elements = OrderedDict([('tx_0_64', tx_0_64), ('tx_65_128', tx_65_128), ('tx_129_256', tx_129_256), ('tx_257_512', tx_257_512), ('tx_513_1024', tx_513_1024), ('tx_1025_2048', tx_1025_2048), ('tx_2049_4096', tx_2049_4096), ('tx_4097_8192', tx_4097_8192), ('tx_8193_16384', tx_8193_16384), ('tx_16385_32768', tx_16385_32768), ('tx_32769_65536', tx_32769_65536), ('tx_65537_131072', tx_65537_131072), ('tx_131073_262144', tx_131073_262144), ('tx_262145_524288', tx_262145_524288), ('tx_524289_1048576', tx_524289_1048576), ])


class yc_tx_data_wmm_openconfig_wifi_mac__ssids_ssid_bssids_bssid_state_counters_tx_data_wmm(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-wifi-mac - based on the path /ssids/ssid/bssids/bssid/state/counters/tx-data-wmm. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Transmitted QoS Data frames, per WMM AC.
  """
  __slots__ = ('_path_helper', '_extmethods', '__vi','__vo','__bk','__be',)

  _yang_name = 'tx-data-wmm'
  _yang_namespace = 'http://openconfig.net/yang/wifi-mac'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__vi = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="vi", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__vo = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="vo", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__bk = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="bk", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__be = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="be", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', 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 ['ssids', 'ssid', 'bssids', 'bssid', 'state', 'counters', 'tx-data-wmm']

  def _get_vi(self):
    """
    Getter method for vi, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_data_wmm/vi (oc-yang:counter64)

    YANG Description: Tx Data frames marked as Access Category Video.
    """
    return self.__vi
      
  def _set_vi(self, v, load=False):
    """
    Setter method for vi, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_data_wmm/vi (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_vi is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_vi() directly.

    YANG Description: Tx Data frames marked as Access Category Video.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="vi", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """vi must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="vi", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__vi = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_vi(self):
    self.__vi = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="vi", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_vo(self):
    """
    Getter method for vo, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_data_wmm/vo (oc-yang:counter64)

    YANG Description: Tx Data frames marked as Access Category Voice.
    """
    return self.__vo
      
  def _set_vo(self, v, load=False):
    """
    Setter method for vo, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_data_wmm/vo (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_vo is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_vo() directly.

    YANG Description: Tx Data frames marked as Access Category Voice.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="vo", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """vo must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="vo", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__vo = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_vo(self):
    self.__vo = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="vo", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_bk(self):
    """
    Getter method for bk, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_data_wmm/bk (oc-yang:counter64)

    YANG Description: Tx Data frames marked as Access Category Background.
    """
    return self.__bk
      
  def _set_bk(self, v, load=False):
    """
    Setter method for bk, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_data_wmm/bk (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_bk is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_bk() directly.

    YANG Description: Tx Data frames marked as Access Category Background.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="bk", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """bk must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="bk", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__bk = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_bk(self):
    self.__bk = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="bk", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_be(self):
    """
    Getter method for be, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_data_wmm/be (oc-yang:counter64)

    YANG Description: Tx Data frames marked as Access Category Best Effort.
    """
    return self.__be
      
  def _set_be(self, v, load=False):
    """
    Setter method for be, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_data_wmm/be (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_be is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_be() directly.

    YANG Description: Tx Data frames marked as Access Category Best Effort.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="be", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """be must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="be", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__be = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_be(self):
    self.__be = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="be", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)

  vi = __builtin__.property(_get_vi)
  vo = __builtin__.property(_get_vo)
  bk = __builtin__.property(_get_bk)
  be = __builtin__.property(_get_be)


  _pyangbind_elements = OrderedDict([('vi', vi), ('vo', vo), ('bk', bk), ('be', be), ])


class yc_tx_mcs_openconfig_wifi_mac__ssids_ssid_bssids_bssid_state_counters_tx_mcs(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-wifi-mac - based on the path /ssids/ssid/bssids/bssid/state/counters/tx-mcs. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Transmitted Data frames, per MCS Index. It is expected that
vendors bucketize 802.11n MCS frames in their matching
802.11ac buckets.

Example, 802.11n MCS 15 = 802.11ac MCS 7.
802.11n MCS 20 = 802.11ac MCS 4.
  """
  __slots__ = ('_path_helper', '_extmethods', '__mcs0','__mcs1','__mcs2','__mcs3','__mcs4','__mcs5','__mcs6','__mcs7','__mcs8','__mcs9','__mcs10','__mcs11',)

  _yang_name = 'tx-mcs'
  _yang_namespace = 'http://openconfig.net/yang/wifi-mac'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__mcs0 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs0", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__mcs1 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs1", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__mcs2 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs2", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__mcs3 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs3", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__mcs4 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs4", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__mcs5 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs5", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__mcs6 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs6", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__mcs7 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs7", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__mcs8 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs8", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__mcs9 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs9", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__mcs10 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs10", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__mcs11 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs11", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', 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 ['ssids', 'ssid', 'bssids', 'bssid', 'state', 'counters', 'tx-mcs']

  def _get_mcs0(self):
    """
    Getter method for mcs0, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_mcs/mcs0 (oc-yang:counter64)

    YANG Description: Tx Data frames at MCS 0.
    """
    return self.__mcs0
      
  def _set_mcs0(self, v, load=False):
    """
    Setter method for mcs0, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_mcs/mcs0 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mcs0 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mcs0() directly.

    YANG Description: Tx Data frames at MCS 0.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs0", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mcs0 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs0", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__mcs0 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mcs0(self):
    self.__mcs0 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs0", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_mcs1(self):
    """
    Getter method for mcs1, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_mcs/mcs1 (oc-yang:counter64)

    YANG Description: Tx Data frames at MCS 1.
    """
    return self.__mcs1
      
  def _set_mcs1(self, v, load=False):
    """
    Setter method for mcs1, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_mcs/mcs1 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mcs1 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mcs1() directly.

    YANG Description: Tx Data frames at MCS 1.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs1", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mcs1 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs1", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__mcs1 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mcs1(self):
    self.__mcs1 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs1", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_mcs2(self):
    """
    Getter method for mcs2, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_mcs/mcs2 (oc-yang:counter64)

    YANG Description: Tx Data frames at MCS 2.
    """
    return self.__mcs2
      
  def _set_mcs2(self, v, load=False):
    """
    Setter method for mcs2, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_mcs/mcs2 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mcs2 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mcs2() directly.

    YANG Description: Tx Data frames at MCS 2.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs2", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mcs2 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs2", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__mcs2 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mcs2(self):
    self.__mcs2 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs2", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_mcs3(self):
    """
    Getter method for mcs3, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_mcs/mcs3 (oc-yang:counter64)

    YANG Description: Tx Data frames at MCS 3.
    """
    return self.__mcs3
      
  def _set_mcs3(self, v, load=False):
    """
    Setter method for mcs3, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_mcs/mcs3 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mcs3 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mcs3() directly.

    YANG Description: Tx Data frames at MCS 3.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs3", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mcs3 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs3", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__mcs3 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mcs3(self):
    self.__mcs3 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs3", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_mcs4(self):
    """
    Getter method for mcs4, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_mcs/mcs4 (oc-yang:counter64)

    YANG Description: Tx Data frames at MCS 4.
    """
    return self.__mcs4
      
  def _set_mcs4(self, v, load=False):
    """
    Setter method for mcs4, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_mcs/mcs4 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mcs4 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mcs4() directly.

    YANG Description: Tx Data frames at MCS 4.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs4", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mcs4 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs4", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__mcs4 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mcs4(self):
    self.__mcs4 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs4", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_mcs5(self):
    """
    Getter method for mcs5, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_mcs/mcs5 (oc-yang:counter64)

    YANG Description: Tx Data frames at MCS 5.
    """
    return self.__mcs5
      
  def _set_mcs5(self, v, load=False):
    """
    Setter method for mcs5, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_mcs/mcs5 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mcs5 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mcs5() directly.

    YANG Description: Tx Data frames at MCS 5.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs5", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mcs5 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs5", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__mcs5 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mcs5(self):
    self.__mcs5 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs5", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_mcs6(self):
    """
    Getter method for mcs6, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_mcs/mcs6 (oc-yang:counter64)

    YANG Description: Tx Data frames at MCS 6.
    """
    return self.__mcs6
      
  def _set_mcs6(self, v, load=False):
    """
    Setter method for mcs6, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_mcs/mcs6 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mcs6 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mcs6() directly.

    YANG Description: Tx Data frames at MCS 6.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs6", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mcs6 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs6", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__mcs6 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mcs6(self):
    self.__mcs6 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs6", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_mcs7(self):
    """
    Getter method for mcs7, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_mcs/mcs7 (oc-yang:counter64)

    YANG Description: Tx Data frames at MCS 7.
    """
    return self.__mcs7
      
  def _set_mcs7(self, v, load=False):
    """
    Setter method for mcs7, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_mcs/mcs7 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mcs7 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mcs7() directly.

    YANG Description: Tx Data frames at MCS 7.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs7", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mcs7 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs7", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__mcs7 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mcs7(self):
    self.__mcs7 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs7", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_mcs8(self):
    """
    Getter method for mcs8, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_mcs/mcs8 (oc-yang:counter64)

    YANG Description: Tx Data frames at MCS 8.
    """
    return self.__mcs8
      
  def _set_mcs8(self, v, load=False):
    """
    Setter method for mcs8, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_mcs/mcs8 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mcs8 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mcs8() directly.

    YANG Description: Tx Data frames at MCS 8.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs8", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mcs8 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs8", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__mcs8 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mcs8(self):
    self.__mcs8 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs8", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_mcs9(self):
    """
    Getter method for mcs9, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_mcs/mcs9 (oc-yang:counter64)

    YANG Description: Tx Data frames at MCS 9.
    """
    return self.__mcs9
      
  def _set_mcs9(self, v, load=False):
    """
    Setter method for mcs9, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_mcs/mcs9 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mcs9 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mcs9() directly.

    YANG Description: Tx Data frames at MCS 9.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs9", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mcs9 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs9", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__mcs9 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mcs9(self):
    self.__mcs9 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs9", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_mcs10(self):
    """
    Getter method for mcs10, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_mcs/mcs10 (oc-yang:counter64)

    YANG Description: Tx Data frames at MCS 10.
    """
    return self.__mcs10
      
  def _set_mcs10(self, v, load=False):
    """
    Setter method for mcs10, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_mcs/mcs10 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mcs10 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mcs10() directly.

    YANG Description: Tx Data frames at MCS 10.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs10", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mcs10 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs10", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__mcs10 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mcs10(self):
    self.__mcs10 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs10", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_mcs11(self):
    """
    Getter method for mcs11, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_mcs/mcs11 (oc-yang:counter64)

    YANG Description: Tx Data frames at MCS 11.
    """
    return self.__mcs11
      
  def _set_mcs11(self, v, load=False):
    """
    Setter method for mcs11, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_mcs/mcs11 (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mcs11 is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mcs11() directly.

    YANG Description: Tx Data frames at MCS 11.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs11", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mcs11 must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs11", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__mcs11 = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mcs11(self):
    self.__mcs11 = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="mcs11", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)

  mcs0 = __builtin__.property(_get_mcs0)
  mcs1 = __builtin__.property(_get_mcs1)
  mcs2 = __builtin__.property(_get_mcs2)
  mcs3 = __builtin__.property(_get_mcs3)
  mcs4 = __builtin__.property(_get_mcs4)
  mcs5 = __builtin__.property(_get_mcs5)
  mcs6 = __builtin__.property(_get_mcs6)
  mcs7 = __builtin__.property(_get_mcs7)
  mcs8 = __builtin__.property(_get_mcs8)
  mcs9 = __builtin__.property(_get_mcs9)
  mcs10 = __builtin__.property(_get_mcs10)
  mcs11 = __builtin__.property(_get_mcs11)


  _pyangbind_elements = OrderedDict([('mcs0', mcs0), ('mcs1', mcs1), ('mcs2', mcs2), ('mcs3', mcs3), ('mcs4', mcs4), ('mcs5', mcs5), ('mcs6', mcs6), ('mcs7', mcs7), ('mcs8', mcs8), ('mcs9', mcs9), ('mcs10', mcs10), ('mcs11', mcs11), ])


class yc_counters_openconfig_wifi_mac__ssids_ssid_bssids_bssid_state_counters(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-wifi-mac - based on the path /ssids/ssid/bssids/bssid/state/counters. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: BSS Counters.
  """
  __slots__ = ('_path_helper', '_extmethods', '__rx_bss_dot11_channel_utilization','__rx_mgmt','__rx_control','__rx_data_dist','__rx_data_wmm','__rx_mcs','__rx_retries','__rx_total_frames','__rx_retries_data','__rx_total_data','__rx_retries_subframe','__rx_total_subframe','__rx_bytes_data','__tx_bss_dot11_channel_utilization','__tx_mgmt','__tx_control','__tx_data_dist','__tx_data_wmm','__tx_mcs','__tx_retries','__tx_total_frames','__tx_retries_data','__tx_total_data','__tx_retries_subframe','__tx_total_subframe','__tx_bytes_data','__bss_channel_utilization',)

  _yang_name = 'counters'
  _yang_namespace = 'http://openconfig.net/yang/wifi-mac'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__rx_bss_dot11_channel_utilization = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="rx-bss-dot11-channel-utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-types:percentage', is_config=False)
    self.__rx_mgmt = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-mgmt", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__rx_control = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-control", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__rx_data_dist = YANGDynClass(base=yc_rx_data_dist_openconfig_wifi_mac__ssids_ssid_bssids_bssid_state_counters_rx_data_dist, is_container='container', yang_name="rx-data-dist", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=False)
    self.__rx_data_wmm = YANGDynClass(base=yc_rx_data_wmm_openconfig_wifi_mac__ssids_ssid_bssids_bssid_state_counters_rx_data_wmm, is_container='container', yang_name="rx-data-wmm", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=False)
    self.__rx_mcs = YANGDynClass(base=yc_rx_mcs_openconfig_wifi_mac__ssids_ssid_bssids_bssid_state_counters_rx_mcs, is_container='container', yang_name="rx-mcs", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=False)
    self.__rx_retries = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-retries", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__rx_total_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-total-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__rx_retries_data = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-retries-data", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__rx_total_data = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-total-data", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__rx_retries_subframe = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-retries-subframe", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__rx_total_subframe = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-total-subframe", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__rx_bytes_data = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-bytes-data", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__tx_bss_dot11_channel_utilization = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="tx-bss-dot11-channel-utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-types:percentage', is_config=False)
    self.__tx_mgmt = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-mgmt", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__tx_control = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-control", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__tx_data_dist = YANGDynClass(base=yc_tx_data_dist_openconfig_wifi_mac__ssids_ssid_bssids_bssid_state_counters_tx_data_dist, is_container='container', yang_name="tx-data-dist", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=False)
    self.__tx_data_wmm = YANGDynClass(base=yc_tx_data_wmm_openconfig_wifi_mac__ssids_ssid_bssids_bssid_state_counters_tx_data_wmm, is_container='container', yang_name="tx-data-wmm", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=False)
    self.__tx_mcs = YANGDynClass(base=yc_tx_mcs_openconfig_wifi_mac__ssids_ssid_bssids_bssid_state_counters_tx_mcs, is_container='container', yang_name="tx-mcs", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=False)
    self.__tx_retries = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-retries", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__tx_total_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-total-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__tx_retries_data = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-retries-data", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__tx_total_data = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-total-data", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__tx_retries_subframe = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-retries-subframe", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__tx_total_subframe = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-total-subframe", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__tx_bytes_data = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-bytes-data", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__bss_channel_utilization = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="bss-channel-utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-types:percentage', 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 ['ssids', 'ssid', 'bssids', 'bssid', 'state', 'counters']

  def _get_rx_bss_dot11_channel_utilization(self):
    """
    Getter method for rx_bss_dot11_channel_utilization, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_bss_dot11_channel_utilization (oc-types:percentage)

    YANG Description: receive channel utilization percent caused by reception of
any 802.11 frame within this BSS.
    """
    return self.__rx_bss_dot11_channel_utilization
      
  def _set_rx_bss_dot11_channel_utilization(self, v, load=False):
    """
    Setter method for rx_bss_dot11_channel_utilization, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_bss_dot11_channel_utilization (oc-types:percentage)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_bss_dot11_channel_utilization is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_bss_dot11_channel_utilization() directly.

    YANG Description: receive channel utilization percent caused by reception of
any 802.11 frame within this BSS.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="rx-bss-dot11-channel-utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-types:percentage', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_bss_dot11_channel_utilization must be of a type compatible with oc-types:percentage""",
          'defined-type': "oc-types:percentage",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="rx-bss-dot11-channel-utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-types:percentage', is_config=False)""",
        })

    self.__rx_bss_dot11_channel_utilization = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rx_bss_dot11_channel_utilization(self):
    self.__rx_bss_dot11_channel_utilization = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="rx-bss-dot11-channel-utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-types:percentage', is_config=False)


  def _get_rx_mgmt(self):
    """
    Getter method for rx_mgmt, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_mgmt (oc-yang:counter64)

    YANG Description: Received 802.11 Management frames.
    """
    return self.__rx_mgmt
      
  def _set_rx_mgmt(self, v, load=False):
    """
    Setter method for rx_mgmt, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_mgmt (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_mgmt is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_mgmt() directly.

    YANG Description: Received 802.11 Management frames.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-mgmt", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_mgmt must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-mgmt", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__rx_mgmt = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rx_mgmt(self):
    self.__rx_mgmt = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-mgmt", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_rx_control(self):
    """
    Getter method for rx_control, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_control (oc-yang:counter64)

    YANG Description: Received 802.11 Control frames.
    """
    return self.__rx_control
      
  def _set_rx_control(self, v, load=False):
    """
    Setter method for rx_control, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_control (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_control is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_control() directly.

    YANG Description: Received 802.11 Control frames.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-control", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_control must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-control", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__rx_control = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rx_control(self):
    self.__rx_control = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-control", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_rx_data_dist(self):
    """
    Getter method for rx_data_dist, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_data_dist (container)

    YANG Description: The distribution of Data frame sizes in bytes of
successfully received AMPDU, or MPDU for non-aggregated,
frames. The distribution should characterize frame sizes
starting at 64 bytes or less with the bin size doubling for
each successive bin to a maximum of 1MB or larger, as
represented in the following table:

Lower Bound Upper Bound
  0          64
  65         128
  129        256
  257        512
  513        1024
  1025       2048
  2049       4096
  4097       8192
  8193       16384
  16385      32768
  32769      65536
  65537      131072
  131073     262144
  262145     524288
  524289     1048576
    """
    return self.__rx_data_dist
      
  def _set_rx_data_dist(self, v, load=False):
    """
    Setter method for rx_data_dist, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_data_dist (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_data_dist is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_data_dist() directly.

    YANG Description: The distribution of Data frame sizes in bytes of
successfully received AMPDU, or MPDU for non-aggregated,
frames. The distribution should characterize frame sizes
starting at 64 bytes or less with the bin size doubling for
each successive bin to a maximum of 1MB or larger, as
represented in the following table:

Lower Bound Upper Bound
  0          64
  65         128
  129        256
  257        512
  513        1024
  1025       2048
  2049       4096
  4097       8192
  8193       16384
  16385      32768
  32769      65536
  65537      131072
  131073     262144
  262145     524288
  524289     1048576
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_rx_data_dist_openconfig_wifi_mac__ssids_ssid_bssids_bssid_state_counters_rx_data_dist, is_container='container', yang_name="rx-data-dist", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_data_dist must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_rx_data_dist_openconfig_wifi_mac__ssids_ssid_bssids_bssid_state_counters_rx_data_dist, is_container='container', yang_name="rx-data-dist", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=False)""",
        })

    self.__rx_data_dist = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rx_data_dist(self):
    self.__rx_data_dist = YANGDynClass(base=yc_rx_data_dist_openconfig_wifi_mac__ssids_ssid_bssids_bssid_state_counters_rx_data_dist, is_container='container', yang_name="rx-data-dist", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=False)


  def _get_rx_data_wmm(self):
    """
    Getter method for rx_data_wmm, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_data_wmm (container)

    YANG Description: Received 802.11 Data frames, per WMM Access Category.
    """
    return self.__rx_data_wmm
      
  def _set_rx_data_wmm(self, v, load=False):
    """
    Setter method for rx_data_wmm, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_data_wmm (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_data_wmm is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_data_wmm() directly.

    YANG Description: Received 802.11 Data frames, per WMM Access Category.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_rx_data_wmm_openconfig_wifi_mac__ssids_ssid_bssids_bssid_state_counters_rx_data_wmm, is_container='container', yang_name="rx-data-wmm", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_data_wmm must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_rx_data_wmm_openconfig_wifi_mac__ssids_ssid_bssids_bssid_state_counters_rx_data_wmm, is_container='container', yang_name="rx-data-wmm", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=False)""",
        })

    self.__rx_data_wmm = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rx_data_wmm(self):
    self.__rx_data_wmm = YANGDynClass(base=yc_rx_data_wmm_openconfig_wifi_mac__ssids_ssid_bssids_bssid_state_counters_rx_data_wmm, is_container='container', yang_name="rx-data-wmm", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=False)


  def _get_rx_mcs(self):
    """
    Getter method for rx_mcs, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_mcs (container)

    YANG Description: Received Data frames, per MCS Index. It is expected that
vendors bucketize 802.11n MCS frames in their matching
802.11ac buckets.

Example, 802.11n MCS 15 = 802.11ac MCS 7.
802.11n MCS 20 = 802.11ac MCS 4.
    """
    return self.__rx_mcs
      
  def _set_rx_mcs(self, v, load=False):
    """
    Setter method for rx_mcs, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_mcs (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_mcs is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_mcs() directly.

    YANG Description: Received Data frames, per MCS Index. It is expected that
vendors bucketize 802.11n MCS frames in their matching
802.11ac buckets.

Example, 802.11n MCS 15 = 802.11ac MCS 7.
802.11n MCS 20 = 802.11ac MCS 4.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_rx_mcs_openconfig_wifi_mac__ssids_ssid_bssids_bssid_state_counters_rx_mcs, is_container='container', yang_name="rx-mcs", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_mcs must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_rx_mcs_openconfig_wifi_mac__ssids_ssid_bssids_bssid_state_counters_rx_mcs, is_container='container', yang_name="rx-mcs", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=False)""",
        })

    self.__rx_mcs = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rx_mcs(self):
    self.__rx_mcs = YANGDynClass(base=yc_rx_mcs_openconfig_wifi_mac__ssids_ssid_bssids_bssid_state_counters_rx_mcs, is_container='container', yang_name="rx-mcs", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=False)


  def _get_rx_retries(self):
    """
    Getter method for rx_retries, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_retries (oc-yang:counter64)

    YANG Description: Total number of received frames with the Retry bit set,
within this BSS.
    """
    return self.__rx_retries
      
  def _set_rx_retries(self, v, load=False):
    """
    Setter method for rx_retries, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_retries (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_retries is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_retries() directly.

    YANG Description: Total number of received frames with the Retry bit set,
within this BSS.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-retries", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_retries must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-retries", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__rx_retries = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rx_retries(self):
    self.__rx_retries = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-retries", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_rx_total_frames(self):
    """
    Getter method for rx_total_frames, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_total_frames (oc-yang:counter64)

    YANG Description: Total number of received frames within this BSS.
    """
    return self.__rx_total_frames
      
  def _set_rx_total_frames(self, v, load=False):
    """
    Setter method for rx_total_frames, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_total_frames (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_total_frames is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_total_frames() directly.

    YANG Description: Total number of received frames within this BSS.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-total-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_total_frames must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-total-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__rx_total_frames = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rx_total_frames(self):
    self.__rx_total_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-total-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_rx_retries_data(self):
    """
    Getter method for rx_retries_data, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_retries_data (oc-yang:counter64)

    YANG Description: Number of received QoS Data frames with the Retry bit set.
    """
    return self.__rx_retries_data
      
  def _set_rx_retries_data(self, v, load=False):
    """
    Setter method for rx_retries_data, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_retries_data (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_retries_data is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_retries_data() directly.

    YANG Description: Number of received QoS Data frames with the Retry bit set.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-retries-data", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_retries_data must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-retries-data", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__rx_retries_data = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rx_retries_data(self):
    self.__rx_retries_data = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-retries-data", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_rx_total_data(self):
    """
    Getter method for rx_total_data, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_total_data (oc-yang:counter64)

    YANG Description: Number of received QoS Data frames.
    """
    return self.__rx_total_data
      
  def _set_rx_total_data(self, v, load=False):
    """
    Setter method for rx_total_data, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_total_data (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_total_data is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_total_data() directly.

    YANG Description: Number of received QoS Data frames.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-total-data", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_total_data must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-total-data", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__rx_total_data = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rx_total_data(self):
    self.__rx_total_data = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-total-data", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_rx_retries_subframe(self):
    """
    Getter method for rx_retries_subframe, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_retries_subframe (oc-yang:counter64)

    YANG Description: Aggregated MPDUs which had individual subframes that fail
and require retransmission.
    """
    return self.__rx_retries_subframe
      
  def _set_rx_retries_subframe(self, v, load=False):
    """
    Setter method for rx_retries_subframe, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_retries_subframe (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_retries_subframe is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_retries_subframe() directly.

    YANG Description: Aggregated MPDUs which had individual subframes that fail
and require retransmission.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-retries-subframe", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_retries_subframe must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-retries-subframe", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__rx_retries_subframe = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rx_retries_subframe(self):
    self.__rx_retries_subframe = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-retries-subframe", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_rx_total_subframe(self):
    """
    Getter method for rx_total_subframe, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_total_subframe (oc-yang:counter64)

    YANG Description: Total Aggregated MPDUs received.
    """
    return self.__rx_total_subframe
      
  def _set_rx_total_subframe(self, v, load=False):
    """
    Setter method for rx_total_subframe, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_total_subframe (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_total_subframe is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_total_subframe() directly.

    YANG Description: Total Aggregated MPDUs received.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-total-subframe", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_total_subframe must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-total-subframe", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__rx_total_subframe = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rx_total_subframe(self):
    self.__rx_total_subframe = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-total-subframe", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_rx_bytes_data(self):
    """
    Getter method for rx_bytes_data, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_bytes_data (oc-yang:counter64)

    YANG Description: Bytes received from QoS Data frames.
    """
    return self.__rx_bytes_data
      
  def _set_rx_bytes_data(self, v, load=False):
    """
    Setter method for rx_bytes_data, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/rx_bytes_data (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_bytes_data is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_bytes_data() directly.

    YANG Description: Bytes received from QoS Data frames.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-bytes-data", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_bytes_data must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-bytes-data", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__rx_bytes_data = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rx_bytes_data(self):
    self.__rx_bytes_data = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-bytes-data", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_tx_bss_dot11_channel_utilization(self):
    """
    Getter method for tx_bss_dot11_channel_utilization, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_bss_dot11_channel_utilization (oc-types:percentage)

    YANG Description: Channel utilization percent caused by transmission of any
802.11 frame within this BSS.
    """
    return self.__tx_bss_dot11_channel_utilization
      
  def _set_tx_bss_dot11_channel_utilization(self, v, load=False):
    """
    Setter method for tx_bss_dot11_channel_utilization, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_bss_dot11_channel_utilization (oc-types:percentage)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tx_bss_dot11_channel_utilization is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tx_bss_dot11_channel_utilization() directly.

    YANG Description: Channel utilization percent caused by transmission of any
802.11 frame within this BSS.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="tx-bss-dot11-channel-utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-types:percentage', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tx_bss_dot11_channel_utilization must be of a type compatible with oc-types:percentage""",
          'defined-type': "oc-types:percentage",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="tx-bss-dot11-channel-utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-types:percentage', is_config=False)""",
        })

    self.__tx_bss_dot11_channel_utilization = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_tx_bss_dot11_channel_utilization(self):
    self.__tx_bss_dot11_channel_utilization = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="tx-bss-dot11-channel-utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-types:percentage', is_config=False)


  def _get_tx_mgmt(self):
    """
    Getter method for tx_mgmt, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_mgmt (oc-yang:counter64)

    YANG Description: Transmitted 802.11 Management frames.
    """
    return self.__tx_mgmt
      
  def _set_tx_mgmt(self, v, load=False):
    """
    Setter method for tx_mgmt, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_mgmt (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tx_mgmt is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tx_mgmt() directly.

    YANG Description: Transmitted 802.11 Management frames.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-mgmt", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tx_mgmt must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-mgmt", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__tx_mgmt = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_tx_mgmt(self):
    self.__tx_mgmt = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-mgmt", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_tx_control(self):
    """
    Getter method for tx_control, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_control (oc-yang:counter64)

    YANG Description: Transmitted 802.11 Control frames.
    """
    return self.__tx_control
      
  def _set_tx_control(self, v, load=False):
    """
    Setter method for tx_control, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_control (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tx_control is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tx_control() directly.

    YANG Description: Transmitted 802.11 Control frames.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-control", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tx_control must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-control", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__tx_control = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_tx_control(self):
    self.__tx_control = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-control", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_tx_data_dist(self):
    """
    Getter method for tx_data_dist, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_data_dist (container)

    YANG Description: The distribution of Data frame sizes in bytes of
successfully transmitted AMPDU, or MPDU for non-aggregated,
frames. The distribution should characterize frame sizes
starting at 64 bytes or less with the bin size doubling for
each successive bin to a maximum of 1MB or larger, as
represented in the following table:

Lower Bound Upper Bound
  0          64
  65         128
  129        256
  257        512
  513        1024
  1025       2048
  2049       4096
  4097       8192
  8193       16384
  16385      32768
  32769      65536
  65537      131072
  131073     262144
  262145     524288
  524289     1048576
    """
    return self.__tx_data_dist
      
  def _set_tx_data_dist(self, v, load=False):
    """
    Setter method for tx_data_dist, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_data_dist (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tx_data_dist is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tx_data_dist() directly.

    YANG Description: The distribution of Data frame sizes in bytes of
successfully transmitted AMPDU, or MPDU for non-aggregated,
frames. The distribution should characterize frame sizes
starting at 64 bytes or less with the bin size doubling for
each successive bin to a maximum of 1MB or larger, as
represented in the following table:

Lower Bound Upper Bound
  0          64
  65         128
  129        256
  257        512
  513        1024
  1025       2048
  2049       4096
  4097       8192
  8193       16384
  16385      32768
  32769      65536
  65537      131072
  131073     262144
  262145     524288
  524289     1048576
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_tx_data_dist_openconfig_wifi_mac__ssids_ssid_bssids_bssid_state_counters_tx_data_dist, is_container='container', yang_name="tx-data-dist", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tx_data_dist must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_tx_data_dist_openconfig_wifi_mac__ssids_ssid_bssids_bssid_state_counters_tx_data_dist, is_container='container', yang_name="tx-data-dist", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=False)""",
        })

    self.__tx_data_dist = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_tx_data_dist(self):
    self.__tx_data_dist = YANGDynClass(base=yc_tx_data_dist_openconfig_wifi_mac__ssids_ssid_bssids_bssid_state_counters_tx_data_dist, is_container='container', yang_name="tx-data-dist", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=False)


  def _get_tx_data_wmm(self):
    """
    Getter method for tx_data_wmm, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_data_wmm (container)

    YANG Description: Transmitted QoS Data frames, per WMM AC.
    """
    return self.__tx_data_wmm
      
  def _set_tx_data_wmm(self, v, load=False):
    """
    Setter method for tx_data_wmm, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_data_wmm (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tx_data_wmm is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tx_data_wmm() directly.

    YANG Description: Transmitted QoS Data frames, per WMM AC.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_tx_data_wmm_openconfig_wifi_mac__ssids_ssid_bssids_bssid_state_counters_tx_data_wmm, is_container='container', yang_name="tx-data-wmm", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tx_data_wmm must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_tx_data_wmm_openconfig_wifi_mac__ssids_ssid_bssids_bssid_state_counters_tx_data_wmm, is_container='container', yang_name="tx-data-wmm", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=False)""",
        })

    self.__tx_data_wmm = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_tx_data_wmm(self):
    self.__tx_data_wmm = YANGDynClass(base=yc_tx_data_wmm_openconfig_wifi_mac__ssids_ssid_bssids_bssid_state_counters_tx_data_wmm, is_container='container', yang_name="tx-data-wmm", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=False)


  def _get_tx_mcs(self):
    """
    Getter method for tx_mcs, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_mcs (container)

    YANG Description: Transmitted Data frames, per MCS Index. It is expected that
vendors bucketize 802.11n MCS frames in their matching
802.11ac buckets.

Example, 802.11n MCS 15 = 802.11ac MCS 7.
802.11n MCS 20 = 802.11ac MCS 4.
    """
    return self.__tx_mcs
      
  def _set_tx_mcs(self, v, load=False):
    """
    Setter method for tx_mcs, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_mcs (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tx_mcs is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tx_mcs() directly.

    YANG Description: Transmitted Data frames, per MCS Index. It is expected that
vendors bucketize 802.11n MCS frames in their matching
802.11ac buckets.

Example, 802.11n MCS 15 = 802.11ac MCS 7.
802.11n MCS 20 = 802.11ac MCS 4.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_tx_mcs_openconfig_wifi_mac__ssids_ssid_bssids_bssid_state_counters_tx_mcs, is_container='container', yang_name="tx-mcs", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tx_mcs must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_tx_mcs_openconfig_wifi_mac__ssids_ssid_bssids_bssid_state_counters_tx_mcs, is_container='container', yang_name="tx-mcs", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=False)""",
        })

    self.__tx_mcs = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_tx_mcs(self):
    self.__tx_mcs = YANGDynClass(base=yc_tx_mcs_openconfig_wifi_mac__ssids_ssid_bssids_bssid_state_counters_tx_mcs, is_container='container', yang_name="tx-mcs", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=False)


  def _get_tx_retries(self):
    """
    Getter method for tx_retries, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_retries (oc-yang:counter64)

    YANG Description: Number of frames transmitted with the Retry bit set.
    """
    return self.__tx_retries
      
  def _set_tx_retries(self, v, load=False):
    """
    Setter method for tx_retries, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_retries (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tx_retries is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tx_retries() directly.

    YANG Description: Number of frames transmitted with the Retry bit set.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-retries", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tx_retries must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-retries", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__tx_retries = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_tx_retries(self):
    self.__tx_retries = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-retries", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_tx_total_frames(self):
    """
    Getter method for tx_total_frames, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_total_frames (oc-yang:counter64)

    YANG Description: Number of frames transmitted.
    """
    return self.__tx_total_frames
      
  def _set_tx_total_frames(self, v, load=False):
    """
    Setter method for tx_total_frames, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_total_frames (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tx_total_frames is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tx_total_frames() directly.

    YANG Description: Number of frames transmitted.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-total-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tx_total_frames must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-total-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__tx_total_frames = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_tx_total_frames(self):
    self.__tx_total_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-total-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_tx_retries_data(self):
    """
    Getter method for tx_retries_data, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_retries_data (oc-yang:counter64)

    YANG Description: Number of transmitted QoS Data frames with the Retry bit
set.
    """
    return self.__tx_retries_data
      
  def _set_tx_retries_data(self, v, load=False):
    """
    Setter method for tx_retries_data, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_retries_data (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tx_retries_data is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tx_retries_data() directly.

    YANG Description: Number of transmitted QoS Data frames with the Retry bit
set.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-retries-data", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tx_retries_data must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-retries-data", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__tx_retries_data = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_tx_retries_data(self):
    self.__tx_retries_data = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-retries-data", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_tx_total_data(self):
    """
    Getter method for tx_total_data, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_total_data (oc-yang:counter64)

    YANG Description: Number of transmitted QoS Data frames.
    """
    return self.__tx_total_data
      
  def _set_tx_total_data(self, v, load=False):
    """
    Setter method for tx_total_data, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_total_data (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tx_total_data is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tx_total_data() directly.

    YANG Description: Number of transmitted QoS Data frames.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-total-data", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tx_total_data must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-total-data", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__tx_total_data = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_tx_total_data(self):
    self.__tx_total_data = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-total-data", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_tx_retries_subframe(self):
    """
    Getter method for tx_retries_subframe, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_retries_subframe (oc-yang:counter64)

    YANG Description: Aggregated MPDUs which had individual subframes that fail
and require retransmission.
    """
    return self.__tx_retries_subframe
      
  def _set_tx_retries_subframe(self, v, load=False):
    """
    Setter method for tx_retries_subframe, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_retries_subframe (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tx_retries_subframe is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tx_retries_subframe() directly.

    YANG Description: Aggregated MPDUs which had individual subframes that fail
and require retransmission.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-retries-subframe", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tx_retries_subframe must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-retries-subframe", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__tx_retries_subframe = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_tx_retries_subframe(self):
    self.__tx_retries_subframe = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-retries-subframe", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_tx_total_subframe(self):
    """
    Getter method for tx_total_subframe, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_total_subframe (oc-yang:counter64)

    YANG Description: Aggregated MPDUs total frames transmitted.
    """
    return self.__tx_total_subframe
      
  def _set_tx_total_subframe(self, v, load=False):
    """
    Setter method for tx_total_subframe, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_total_subframe (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tx_total_subframe is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tx_total_subframe() directly.

    YANG Description: Aggregated MPDUs total frames transmitted.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-total-subframe", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tx_total_subframe must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-total-subframe", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__tx_total_subframe = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_tx_total_subframe(self):
    self.__tx_total_subframe = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-total-subframe", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_tx_bytes_data(self):
    """
    Getter method for tx_bytes_data, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_bytes_data (oc-yang:counter64)

    YANG Description: Bytes transmitted from QoS Data frames.
    """
    return self.__tx_bytes_data
      
  def _set_tx_bytes_data(self, v, load=False):
    """
    Setter method for tx_bytes_data, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/tx_bytes_data (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tx_bytes_data is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tx_bytes_data() directly.

    YANG Description: Bytes transmitted from QoS Data frames.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-bytes-data", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tx_bytes_data must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-bytes-data", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__tx_bytes_data = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_tx_bytes_data(self):
    self.__tx_bytes_data = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-bytes-data", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_bss_channel_utilization(self):
    """
    Getter method for bss_channel_utilization, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/bss_channel_utilization (oc-types:percentage)

    YANG Description: Total 802.11 channel utilization in this BSS. The total
channel utilization should include all time periods the AP
spent actively receiving and transmitting 802.11 frames in
this BSS.
    """
    return self.__bss_channel_utilization
      
  def _set_bss_channel_utilization(self, v, load=False):
    """
    Setter method for bss_channel_utilization, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters/bss_channel_utilization (oc-types:percentage)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_bss_channel_utilization is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_bss_channel_utilization() directly.

    YANG Description: Total 802.11 channel utilization in this BSS. The total
channel utilization should include all time periods the AP
spent actively receiving and transmitting 802.11 frames in
this BSS.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="bss-channel-utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-types:percentage', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """bss_channel_utilization must be of a type compatible with oc-types:percentage""",
          'defined-type': "oc-types:percentage",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="bss-channel-utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-types:percentage', is_config=False)""",
        })

    self.__bss_channel_utilization = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_bss_channel_utilization(self):
    self.__bss_channel_utilization = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="bss-channel-utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-types:percentage', is_config=False)

  rx_bss_dot11_channel_utilization = __builtin__.property(_get_rx_bss_dot11_channel_utilization)
  rx_mgmt = __builtin__.property(_get_rx_mgmt)
  rx_control = __builtin__.property(_get_rx_control)
  rx_data_dist = __builtin__.property(_get_rx_data_dist)
  rx_data_wmm = __builtin__.property(_get_rx_data_wmm)
  rx_mcs = __builtin__.property(_get_rx_mcs)
  rx_retries = __builtin__.property(_get_rx_retries)
  rx_total_frames = __builtin__.property(_get_rx_total_frames)
  rx_retries_data = __builtin__.property(_get_rx_retries_data)
  rx_total_data = __builtin__.property(_get_rx_total_data)
  rx_retries_subframe = __builtin__.property(_get_rx_retries_subframe)
  rx_total_subframe = __builtin__.property(_get_rx_total_subframe)
  rx_bytes_data = __builtin__.property(_get_rx_bytes_data)
  tx_bss_dot11_channel_utilization = __builtin__.property(_get_tx_bss_dot11_channel_utilization)
  tx_mgmt = __builtin__.property(_get_tx_mgmt)
  tx_control = __builtin__.property(_get_tx_control)
  tx_data_dist = __builtin__.property(_get_tx_data_dist)
  tx_data_wmm = __builtin__.property(_get_tx_data_wmm)
  tx_mcs = __builtin__.property(_get_tx_mcs)
  tx_retries = __builtin__.property(_get_tx_retries)
  tx_total_frames = __builtin__.property(_get_tx_total_frames)
  tx_retries_data = __builtin__.property(_get_tx_retries_data)
  tx_total_data = __builtin__.property(_get_tx_total_data)
  tx_retries_subframe = __builtin__.property(_get_tx_retries_subframe)
  tx_total_subframe = __builtin__.property(_get_tx_total_subframe)
  tx_bytes_data = __builtin__.property(_get_tx_bytes_data)
  bss_channel_utilization = __builtin__.property(_get_bss_channel_utilization)


  _pyangbind_elements = OrderedDict([('rx_bss_dot11_channel_utilization', rx_bss_dot11_channel_utilization), ('rx_mgmt', rx_mgmt), ('rx_control', rx_control), ('rx_data_dist', rx_data_dist), ('rx_data_wmm', rx_data_wmm), ('rx_mcs', rx_mcs), ('rx_retries', rx_retries), ('rx_total_frames', rx_total_frames), ('rx_retries_data', rx_retries_data), ('rx_total_data', rx_total_data), ('rx_retries_subframe', rx_retries_subframe), ('rx_total_subframe', rx_total_subframe), ('rx_bytes_data', rx_bytes_data), ('tx_bss_dot11_channel_utilization', tx_bss_dot11_channel_utilization), ('tx_mgmt', tx_mgmt), ('tx_control', tx_control), ('tx_data_dist', tx_data_dist), ('tx_data_wmm', tx_data_wmm), ('tx_mcs', tx_mcs), ('tx_retries', tx_retries), ('tx_total_frames', tx_total_frames), ('tx_retries_data', tx_retries_data), ('tx_total_data', tx_total_data), ('tx_retries_subframe', tx_retries_subframe), ('tx_total_subframe', tx_total_subframe), ('tx_bytes_data', tx_bytes_data), ('bss_channel_utilization', bss_channel_utilization), ])


class yc_state_openconfig_wifi_mac__ssids_ssid_bssids_bssid_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-wifi-mac - based on the path /ssids/ssid/bssids/bssid/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: BSSID state data.
  """
  __slots__ = ('_path_helper', '_extmethods', '__bssid','__radio_id','__num_associated_clients','__counters',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi-mac'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__bssid = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="bssid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:mac-address', is_config=False)
    self.__radio_id = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="radio-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=False)
    self.__num_associated_clients = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-associated-clients", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=False)
    self.__counters = YANGDynClass(base=yc_counters_openconfig_wifi_mac__ssids_ssid_bssids_bssid_state_counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', 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 ['ssids', 'ssid', 'bssids', 'bssid', 'state']

  def _get_bssid(self):
    """
    Getter method for bssid, mapped from YANG variable /ssids/ssid/bssids/bssid/state/bssid (oc-yang:mac-address)

    YANG Description: MAC of the BSS.
    """
    return self.__bssid
      
  def _set_bssid(self, v, load=False):
    """
    Setter method for bssid, mapped from YANG variable /ssids/ssid/bssids/bssid/state/bssid (oc-yang:mac-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_bssid is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_bssid() directly.

    YANG Description: MAC of the BSS.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="bssid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:mac-address', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """bssid must be of a type compatible with oc-yang:mac-address""",
          'defined-type': "oc-yang:mac-address",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="bssid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:mac-address', is_config=False)""",
        })

    self.__bssid = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_bssid(self):
    self.__bssid = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="bssid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:mac-address', is_config=False)


  def _get_radio_id(self):
    """
    Getter method for radio_id, mapped from YANG variable /ssids/ssid/bssids/bssid/state/radio_id (uint8)

    YANG Description: The configured id of the radio
    """
    return self.__radio_id
      
  def _set_radio_id(self, v, load=False):
    """
    Setter method for radio_id, mapped from YANG variable /ssids/ssid/bssids/bssid/state/radio_id (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_radio_id is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_radio_id() directly.

    YANG Description: The configured id of the radio
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="radio-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """radio_id must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="radio-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=False)""",
        })

    self.__radio_id = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_radio_id(self):
    self.__radio_id = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="radio-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=False)


  def _get_num_associated_clients(self):
    """
    Getter method for num_associated_clients, mapped from YANG variable /ssids/ssid/bssids/bssid/state/num_associated_clients (uint8)

    YANG Description: Number of associated STAs to this BSS.
    """
    return self.__num_associated_clients
      
  def _set_num_associated_clients(self, v, load=False):
    """
    Setter method for num_associated_clients, mapped from YANG variable /ssids/ssid/bssids/bssid/state/num_associated_clients (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_num_associated_clients is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_num_associated_clients() directly.

    YANG Description: Number of associated STAs to this BSS.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-associated-clients", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """num_associated_clients must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-associated-clients", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=False)""",
        })

    self.__num_associated_clients = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_num_associated_clients(self):
    self.__num_associated_clients = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-associated-clients", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=False)


  def _get_counters(self):
    """
    Getter method for counters, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters (container)

    YANG Description: BSS Counters.
    """
    return self.__counters
      
  def _set_counters(self, v, load=False):
    """
    Setter method for counters, mapped from YANG variable /ssids/ssid/bssids/bssid/state/counters (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_counters is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_counters() directly.

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

    self.__counters = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_counters(self):
    self.__counters = YANGDynClass(base=yc_counters_openconfig_wifi_mac__ssids_ssid_bssids_bssid_state_counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=False)

  bssid = __builtin__.property(_get_bssid)
  radio_id = __builtin__.property(_get_radio_id)
  num_associated_clients = __builtin__.property(_get_num_associated_clients)
  counters = __builtin__.property(_get_counters)


  _pyangbind_elements = OrderedDict([('bssid', bssid), ('radio_id', radio_id), ('num_associated_clients', num_associated_clients), ('counters', counters), ])


class yc_bssid_openconfig_wifi_mac__ssids_ssid_bssids_bssid(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-wifi-mac - based on the path /ssids/ssid/bssids/bssid. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: List of BSSIDs and what radio-id they utilize. Radio-id
included here to allocate for APs with dual 5GHz radios.
Usage of paths allows for discovery and subscription of
State data per BSSID, regardless of radio.
  """
  __slots__ = ('_path_helper', '_extmethods', '__bssid','__radio_id','__state',)

  _yang_name = 'bssid'
  _yang_namespace = 'http://openconfig.net/yang/wifi-mac'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__bssid = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="bssid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='leafref', is_config=False)
    self.__radio_id = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="radio-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='leafref', is_config=False)
    self.__state = YANGDynClass(base=yc_state_openconfig_wifi_mac__ssids_ssid_bssids_bssid_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/wifi-mac', defining_module='openconfig-wifi-mac', 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 ['ssids', 'ssid', 'bssids', 'bssid']

  def _get_bssid(self):
    """
    Getter method for bssid, mapped from YANG variable /ssids/ssid/bssids/bssid/bssid (leafref)

    YANG Description: The BSSID MAC address.
    """
    return self.__bssid
      
  def _set_bssid(self, v, load=False):
    """
    Setter method for bssid, mapped from YANG variable /ssids/ssid/bssids/bssid/bssid (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_bssid is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_bssid() directly.

    YANG Description: The BSSID MAC address.
    """
    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="bssid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='leafref', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """bssid must be of a type compatible with leafref""",
          'defined-type': "leafref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="bssid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='leafref', is_config=False)""",
        })

    self.__bssid = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_bssid(self):
    self.__bssid = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="bssid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='leafref', is_config=False)


  def _get_radio_id(self):
    """
    Getter method for radio_id, mapped from YANG variable /ssids/ssid/bssids/bssid/radio_id (leafref)

    YANG Description: References the configured id of the radio.
    """
    return self.__radio_id
      
  def _set_radio_id(self, v, load=False):
    """
    Setter method for radio_id, mapped from YANG variable /ssids/ssid/bssids/bssid/radio_id (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_radio_id is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_radio_id() directly.

    YANG Description: References the configured id of the radio.
    """
    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="radio-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='leafref', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """radio_id must be of a type compatible with leafref""",
          'defined-type': "leafref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="radio-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='leafref', is_config=False)""",
        })

    self.__radio_id = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_radio_id(self):
    self.__radio_id = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="radio-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='leafref', is_config=False)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /ssids/ssid/bssids/bssid/state (container)

    YANG Description: BSSID state data.
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /ssids/ssid/bssids/bssid/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: BSSID state data.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_wifi_mac__ssids_ssid_bssids_bssid_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/wifi-mac', defining_module='openconfig-wifi-mac', 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=yc_state_openconfig_wifi_mac__ssids_ssid_bssids_bssid_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/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=False)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_wifi_mac__ssids_ssid_bssids_bssid_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/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=False)

  bssid = __builtin__.property(_get_bssid)
  radio_id = __builtin__.property(_get_radio_id)
  state = __builtin__.property(_get_state)


  _pyangbind_elements = OrderedDict([('bssid', bssid), ('radio_id', radio_id), ('state', state), ])


class yc_bssids_openconfig_wifi_mac__ssids_ssid_bssids(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-wifi-mac - based on the path /ssids/ssid/bssids. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Top-level container for BSSIDs operational state data.
  """
  __slots__ = ('_path_helper', '_extmethods', '__bssid',)

  _yang_name = 'bssids'
  _yang_namespace = 'http://openconfig.net/yang/wifi-mac'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__bssid = YANGDynClass(base=YANGListType("radio_id bssid",yc_bssid_openconfig_wifi_mac__ssids_ssid_bssids_bssid, yang_name="bssid", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='radio-id bssid', extensions=None), is_container='list', yang_name="bssid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='list', is_config=True)

    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 ['ssids', 'ssid', 'bssids']

  def _get_bssid(self):
    """
    Getter method for bssid, mapped from YANG variable /ssids/ssid/bssids/bssid (list)

    YANG Description: List of BSSIDs and what radio-id they utilize. Radio-id
included here to allocate for APs with dual 5GHz radios.
Usage of paths allows for discovery and subscription of
State data per BSSID, regardless of radio.
    """
    return self.__bssid
      
  def _set_bssid(self, v, load=False):
    """
    Setter method for bssid, mapped from YANG variable /ssids/ssid/bssids/bssid (list)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_bssid is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_bssid() directly.

    YANG Description: List of BSSIDs and what radio-id they utilize. Radio-id
included here to allocate for APs with dual 5GHz radios.
Usage of paths allows for discovery and subscription of
State data per BSSID, regardless of radio.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGListType("radio_id bssid",yc_bssid_openconfig_wifi_mac__ssids_ssid_bssids_bssid, yang_name="bssid", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='radio-id bssid', extensions=None), is_container='list', yang_name="bssid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='list', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """bssid must be of a type compatible with list""",
          'defined-type': "list",
          'generated-type': """YANGDynClass(base=YANGListType("radio_id bssid",yc_bssid_openconfig_wifi_mac__ssids_ssid_bssids_bssid, yang_name="bssid", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='radio-id bssid', extensions=None), is_container='list', yang_name="bssid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='list', is_config=True)""",
        })

    self.__bssid = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_bssid(self):
    self.__bssid = YANGDynClass(base=YANGListType("radio_id bssid",yc_bssid_openconfig_wifi_mac__ssids_ssid_bssids_bssid, yang_name="bssid", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='radio-id bssid', extensions=None), is_container='list', yang_name="bssid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='list', is_config=True)

  bssid = __builtin__.property(_get_bssid, _set_bssid)


  _pyangbind_elements = OrderedDict([('bssid', bssid), ])


class yc_config_openconfig_wifi_mac__ssids_ssid_wmm_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-wifi-mac - based on the path /ssids/ssid/wmm/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Container for WMM configuration elements.
  """
  __slots__ = ('_path_helper', '_extmethods', '__trust_dscp','__wmm_vo_remark','__wmm_vi_remark','__wmm_be_remark','__wmm_bk_remark',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi-mac'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__trust_dscp = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="trust-dscp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)
    self.__wmm_vo_remark = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="wmm-vo-remark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=True)
    self.__wmm_vi_remark = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="wmm-vi-remark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=True)
    self.__wmm_be_remark = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="wmm-be-remark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=True)
    self.__wmm_bk_remark = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="wmm-bk-remark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=True)

    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 ['ssids', 'ssid', 'wmm', 'config']

  def _get_trust_dscp(self):
    """
    Getter method for trust_dscp, mapped from YANG variable /ssids/ssid/wmm/config/trust_dscp (boolean)

    YANG Description: The AP should trust DSCP on 802.11 frames received
in this BSS.
    """
    return self.__trust_dscp
      
  def _set_trust_dscp(self, v, load=False):
    """
    Setter method for trust_dscp, mapped from YANG variable /ssids/ssid/wmm/config/trust_dscp (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_trust_dscp is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_trust_dscp() directly.

    YANG Description: The AP should trust DSCP on 802.11 frames received
in this BSS.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="trust-dscp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """trust_dscp must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="trust-dscp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)""",
        })

    self.__trust_dscp = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_trust_dscp(self):
    self.__trust_dscp = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="trust-dscp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)


  def _get_wmm_vo_remark(self):
    """
    Getter method for wmm_vo_remark, mapped from YANG variable /ssids/ssid/wmm/config/wmm_vo_remark (uint8)

    YANG Description: Allowed DSCP markings for WMM AC_VO. Remark to lowest in this
list if DSCP marking falls outside of these allowed markings.

From 1 (min) to 8 (max) integers.
    """
    return self.__wmm_vo_remark
      
  def _set_wmm_vo_remark(self, v, load=False):
    """
    Setter method for wmm_vo_remark, mapped from YANG variable /ssids/ssid/wmm/config/wmm_vo_remark (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_wmm_vo_remark is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_wmm_vo_remark() directly.

    YANG Description: Allowed DSCP markings for WMM AC_VO. Remark to lowest in this
list if DSCP marking falls outside of these allowed markings.

From 1 (min) to 8 (max) integers.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="wmm-vo-remark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """wmm_vo_remark must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="wmm-vo-remark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=True)""",
        })

    self.__wmm_vo_remark = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_wmm_vo_remark(self):
    self.__wmm_vo_remark = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="wmm-vo-remark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=True)


  def _get_wmm_vi_remark(self):
    """
    Getter method for wmm_vi_remark, mapped from YANG variable /ssids/ssid/wmm/config/wmm_vi_remark (uint8)

    YANG Description: Allowed DSCP markings for WMM AC_VI. Remark to lowest in this
list if DSCP marking falls outside of these allowed markings.

From 1 (min) to 8 (max) integers.
    """
    return self.__wmm_vi_remark
      
  def _set_wmm_vi_remark(self, v, load=False):
    """
    Setter method for wmm_vi_remark, mapped from YANG variable /ssids/ssid/wmm/config/wmm_vi_remark (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_wmm_vi_remark is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_wmm_vi_remark() directly.

    YANG Description: Allowed DSCP markings for WMM AC_VI. Remark to lowest in this
list if DSCP marking falls outside of these allowed markings.

From 1 (min) to 8 (max) integers.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="wmm-vi-remark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """wmm_vi_remark must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="wmm-vi-remark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=True)""",
        })

    self.__wmm_vi_remark = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_wmm_vi_remark(self):
    self.__wmm_vi_remark = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="wmm-vi-remark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=True)


  def _get_wmm_be_remark(self):
    """
    Getter method for wmm_be_remark, mapped from YANG variable /ssids/ssid/wmm/config/wmm_be_remark (uint8)

    YANG Description: Allowed DSCP markings for WMM AC_BE. Remark to lowest in this
list if DSCP marking falls outside of these allowed markings.

From 1 (min) to 8 (max) integers.
    """
    return self.__wmm_be_remark
      
  def _set_wmm_be_remark(self, v, load=False):
    """
    Setter method for wmm_be_remark, mapped from YANG variable /ssids/ssid/wmm/config/wmm_be_remark (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_wmm_be_remark is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_wmm_be_remark() directly.

    YANG Description: Allowed DSCP markings for WMM AC_BE. Remark to lowest in this
list if DSCP marking falls outside of these allowed markings.

From 1 (min) to 8 (max) integers.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="wmm-be-remark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """wmm_be_remark must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="wmm-be-remark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=True)""",
        })

    self.__wmm_be_remark = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_wmm_be_remark(self):
    self.__wmm_be_remark = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="wmm-be-remark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=True)


  def _get_wmm_bk_remark(self):
    """
    Getter method for wmm_bk_remark, mapped from YANG variable /ssids/ssid/wmm/config/wmm_bk_remark (uint8)

    YANG Description: Allowed DSCP markings for WMM AC_BK. Remark to lowest in this
list if DSCP marking falls outside of these allowed markings.

From 1 (min) to 8 (max) integers.
    """
    return self.__wmm_bk_remark
      
  def _set_wmm_bk_remark(self, v, load=False):
    """
    Setter method for wmm_bk_remark, mapped from YANG variable /ssids/ssid/wmm/config/wmm_bk_remark (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_wmm_bk_remark is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_wmm_bk_remark() directly.

    YANG Description: Allowed DSCP markings for WMM AC_BK. Remark to lowest in this
list if DSCP marking falls outside of these allowed markings.

From 1 (min) to 8 (max) integers.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="wmm-bk-remark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """wmm_bk_remark must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="wmm-bk-remark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=True)""",
        })

    self.__wmm_bk_remark = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_wmm_bk_remark(self):
    self.__wmm_bk_remark = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="wmm-bk-remark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=True)

  trust_dscp = __builtin__.property(_get_trust_dscp, _set_trust_dscp)
  wmm_vo_remark = __builtin__.property(_get_wmm_vo_remark, _set_wmm_vo_remark)
  wmm_vi_remark = __builtin__.property(_get_wmm_vi_remark, _set_wmm_vi_remark)
  wmm_be_remark = __builtin__.property(_get_wmm_be_remark, _set_wmm_be_remark)
  wmm_bk_remark = __builtin__.property(_get_wmm_bk_remark, _set_wmm_bk_remark)


  _pyangbind_elements = OrderedDict([('trust_dscp', trust_dscp), ('wmm_vo_remark', wmm_vo_remark), ('wmm_vi_remark', wmm_vi_remark), ('wmm_be_remark', wmm_be_remark), ('wmm_bk_remark', wmm_bk_remark), ])


class yc_state_openconfig_wifi_mac__ssids_ssid_wmm_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-wifi-mac - based on the path /ssids/ssid/wmm/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Container for WMM state elements.
  """
  __slots__ = ('_path_helper', '_extmethods', '__trust_dscp','__wmm_vo_remark','__wmm_vi_remark','__wmm_be_remark','__wmm_bk_remark',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi-mac'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__trust_dscp = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="trust-dscp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)
    self.__wmm_vo_remark = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="wmm-vo-remark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=False)
    self.__wmm_vi_remark = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="wmm-vi-remark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=False)
    self.__wmm_be_remark = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="wmm-be-remark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=False)
    self.__wmm_bk_remark = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="wmm-bk-remark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', 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 ['ssids', 'ssid', 'wmm', 'state']

  def _get_trust_dscp(self):
    """
    Getter method for trust_dscp, mapped from YANG variable /ssids/ssid/wmm/state/trust_dscp (boolean)

    YANG Description: The AP should trust DSCP on 802.11 frames received
in this BSS.
    """
    return self.__trust_dscp
      
  def _set_trust_dscp(self, v, load=False):
    """
    Setter method for trust_dscp, mapped from YANG variable /ssids/ssid/wmm/state/trust_dscp (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_trust_dscp is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_trust_dscp() directly.

    YANG Description: The AP should trust DSCP on 802.11 frames received
in this BSS.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="trust-dscp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """trust_dscp must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="trust-dscp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)""",
        })

    self.__trust_dscp = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_trust_dscp(self):
    self.__trust_dscp = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="trust-dscp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)


  def _get_wmm_vo_remark(self):
    """
    Getter method for wmm_vo_remark, mapped from YANG variable /ssids/ssid/wmm/state/wmm_vo_remark (uint8)

    YANG Description: Allowed DSCP markings for WMM AC_VO. Remark to lowest in this
list if DSCP marking falls outside of these allowed markings.

From 1 (min) to 8 (max) integers.
    """
    return self.__wmm_vo_remark
      
  def _set_wmm_vo_remark(self, v, load=False):
    """
    Setter method for wmm_vo_remark, mapped from YANG variable /ssids/ssid/wmm/state/wmm_vo_remark (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_wmm_vo_remark is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_wmm_vo_remark() directly.

    YANG Description: Allowed DSCP markings for WMM AC_VO. Remark to lowest in this
list if DSCP marking falls outside of these allowed markings.

From 1 (min) to 8 (max) integers.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="wmm-vo-remark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """wmm_vo_remark must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="wmm-vo-remark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=False)""",
        })

    self.__wmm_vo_remark = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_wmm_vo_remark(self):
    self.__wmm_vo_remark = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="wmm-vo-remark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=False)


  def _get_wmm_vi_remark(self):
    """
    Getter method for wmm_vi_remark, mapped from YANG variable /ssids/ssid/wmm/state/wmm_vi_remark (uint8)

    YANG Description: Allowed DSCP markings for WMM AC_VI. Remark to lowest in this
list if DSCP marking falls outside of these allowed markings.

From 1 (min) to 8 (max) integers.
    """
    return self.__wmm_vi_remark
      
  def _set_wmm_vi_remark(self, v, load=False):
    """
    Setter method for wmm_vi_remark, mapped from YANG variable /ssids/ssid/wmm/state/wmm_vi_remark (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_wmm_vi_remark is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_wmm_vi_remark() directly.

    YANG Description: Allowed DSCP markings for WMM AC_VI. Remark to lowest in this
list if DSCP marking falls outside of these allowed markings.

From 1 (min) to 8 (max) integers.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="wmm-vi-remark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """wmm_vi_remark must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="wmm-vi-remark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=False)""",
        })

    self.__wmm_vi_remark = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_wmm_vi_remark(self):
    self.__wmm_vi_remark = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="wmm-vi-remark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=False)


  def _get_wmm_be_remark(self):
    """
    Getter method for wmm_be_remark, mapped from YANG variable /ssids/ssid/wmm/state/wmm_be_remark (uint8)

    YANG Description: Allowed DSCP markings for WMM AC_BE. Remark to lowest in this
list if DSCP marking falls outside of these allowed markings.

From 1 (min) to 8 (max) integers.
    """
    return self.__wmm_be_remark
      
  def _set_wmm_be_remark(self, v, load=False):
    """
    Setter method for wmm_be_remark, mapped from YANG variable /ssids/ssid/wmm/state/wmm_be_remark (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_wmm_be_remark is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_wmm_be_remark() directly.

    YANG Description: Allowed DSCP markings for WMM AC_BE. Remark to lowest in this
list if DSCP marking falls outside of these allowed markings.

From 1 (min) to 8 (max) integers.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="wmm-be-remark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """wmm_be_remark must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="wmm-be-remark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=False)""",
        })

    self.__wmm_be_remark = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_wmm_be_remark(self):
    self.__wmm_be_remark = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="wmm-be-remark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=False)


  def _get_wmm_bk_remark(self):
    """
    Getter method for wmm_bk_remark, mapped from YANG variable /ssids/ssid/wmm/state/wmm_bk_remark (uint8)

    YANG Description: Allowed DSCP markings for WMM AC_BK. Remark to lowest in this
list if DSCP marking falls outside of these allowed markings.

From 1 (min) to 8 (max) integers.
    """
    return self.__wmm_bk_remark
      
  def _set_wmm_bk_remark(self, v, load=False):
    """
    Setter method for wmm_bk_remark, mapped from YANG variable /ssids/ssid/wmm/state/wmm_bk_remark (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_wmm_bk_remark is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_wmm_bk_remark() directly.

    YANG Description: Allowed DSCP markings for WMM AC_BK. Remark to lowest in this
list if DSCP marking falls outside of these allowed markings.

From 1 (min) to 8 (max) integers.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="wmm-bk-remark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """wmm_bk_remark must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="wmm-bk-remark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=False)""",
        })

    self.__wmm_bk_remark = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_wmm_bk_remark(self):
    self.__wmm_bk_remark = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="wmm-bk-remark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=False)

  trust_dscp = __builtin__.property(_get_trust_dscp)
  wmm_vo_remark = __builtin__.property(_get_wmm_vo_remark)
  wmm_vi_remark = __builtin__.property(_get_wmm_vi_remark)
  wmm_be_remark = __builtin__.property(_get_wmm_be_remark)
  wmm_bk_remark = __builtin__.property(_get_wmm_bk_remark)


  _pyangbind_elements = OrderedDict([('trust_dscp', trust_dscp), ('wmm_vo_remark', wmm_vo_remark), ('wmm_vi_remark', wmm_vi_remark), ('wmm_be_remark', wmm_be_remark), ('wmm_bk_remark', wmm_bk_remark), ])


class yc_wmm_openconfig_wifi_mac__ssids_ssid_wmm(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-wifi-mac - based on the path /ssids/ssid/wmm. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Top-level container for WMM configuration and
state container.
  """
  __slots__ = ('_path_helper', '_extmethods', '__config','__state',)

  _yang_name = 'wmm'
  _yang_namespace = 'http://openconfig.net/yang/wifi-mac'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__config = YANGDynClass(base=yc_config_openconfig_wifi_mac__ssids_ssid_wmm_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_wifi_mac__ssids_ssid_wmm_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/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)

    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 ['ssids', 'ssid', 'wmm']

  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /ssids/ssid/wmm/config (container)

    YANG Description: Container for WMM configuration elements.
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /ssids/ssid/wmm/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Container for WMM configuration elements.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_wifi_mac__ssids_ssid_wmm_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_wifi_mac__ssids_ssid_wmm_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_wifi_mac__ssids_ssid_wmm_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /ssids/ssid/wmm/state (container)

    YANG Description: Container for WMM state elements.
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /ssids/ssid/wmm/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: Container for WMM state elements.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_wifi_mac__ssids_ssid_wmm_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/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_wifi_mac__ssids_ssid_wmm_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/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_wifi_mac__ssids_ssid_wmm_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/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)

  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)


  _pyangbind_elements = OrderedDict([('config', config), ('state', state), ])


class yc_config_openconfig_wifi_mac__ssids_ssid_dot11r_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-wifi-mac - based on the path /ssids/ssid/dot11r/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Container for 802.11r configuration elements.
  """
  __slots__ = ('_path_helper', '_extmethods', '__dot11r','__dot11r_domainid','__dot11r_method','__dot11r_r1key_timeout',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi-mac'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__dot11r = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dot11r", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)
    self.__dot11r_domainid = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="dot11r-domainid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint16', is_config=True)
    self.__dot11r_method = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OVA': {}, 'ODS': {}},), default=six.text_type("OVA"), is_leaf=True, yang_name="dot11r-method", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='enumeration', is_config=True)
    self.__dot11r_r1key_timeout = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="dot11r-r1key-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint16', is_config=True)

    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 ['ssids', 'ssid', 'dot11r', 'config']

  def _get_dot11r(self):
    """
    Getter method for dot11r, mapped from YANG variable /ssids/ssid/dot11r/config/dot11r (boolean)

    YANG Description: Enable/disable 802.11r FT.
    """
    return self.__dot11r
      
  def _set_dot11r(self, v, load=False):
    """
    Setter method for dot11r, mapped from YANG variable /ssids/ssid/dot11r/config/dot11r (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dot11r is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dot11r() directly.

    YANG Description: Enable/disable 802.11r FT.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="dot11r", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dot11r must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dot11r", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)""",
        })

    self.__dot11r = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dot11r(self):
    self.__dot11r = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dot11r", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)


  def _get_dot11r_domainid(self):
    """
    Getter method for dot11r_domainid, mapped from YANG variable /ssids/ssid/dot11r/config/dot11r_domainid (uint16)

    YANG Description: Specify the mobility domain id (MDID) where PMK-R0
distribution will occur. Specifically, which APs will receive
PMK-R0 if using 802.11r (FT).
    """
    return self.__dot11r_domainid
      
  def _set_dot11r_domainid(self, v, load=False):
    """
    Setter method for dot11r_domainid, mapped from YANG variable /ssids/ssid/dot11r/config/dot11r_domainid (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dot11r_domainid is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dot11r_domainid() directly.

    YANG Description: Specify the mobility domain id (MDID) where PMK-R0
distribution will occur. Specifically, which APs will receive
PMK-R0 if using 802.11r (FT).
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="dot11r-domainid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint16', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dot11r_domainid must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="dot11r-domainid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint16', is_config=True)""",
        })

    self.__dot11r_domainid = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dot11r_domainid(self):
    self.__dot11r_domainid = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="dot11r-domainid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint16', is_config=True)


  def _get_dot11r_method(self):
    """
    Getter method for dot11r_method, mapped from YANG variable /ssids/ssid/dot11r/config/dot11r_method (enumeration)

    YANG Description: The type of 802.11r FT in use.
    """
    return self.__dot11r_method
      
  def _set_dot11r_method(self, v, load=False):
    """
    Setter method for dot11r_method, mapped from YANG variable /ssids/ssid/dot11r/config/dot11r_method (enumeration)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dot11r_method is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dot11r_method() directly.

    YANG Description: The type of 802.11r FT in use.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OVA': {}, 'ODS': {}},), default=six.text_type("OVA"), is_leaf=True, yang_name="dot11r-method", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='enumeration', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dot11r_method must be of a type compatible with enumeration""",
          'defined-type': "openconfig-wifi-mac:enumeration",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OVA': {}, 'ODS': {}},), default=six.text_type("OVA"), is_leaf=True, yang_name="dot11r-method", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='enumeration', is_config=True)""",
        })

    self.__dot11r_method = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dot11r_method(self):
    self.__dot11r_method = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OVA': {}, 'ODS': {}},), default=six.text_type("OVA"), is_leaf=True, yang_name="dot11r-method", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='enumeration', is_config=True)


  def _get_dot11r_r1key_timeout(self):
    """
    Getter method for dot11r_r1key_timeout, mapped from YANG variable /ssids/ssid/dot11r/config/dot11r_r1key_timeout (uint16)

    YANG Description: TTL for the Pairwise Master Key R1.
    """
    return self.__dot11r_r1key_timeout
      
  def _set_dot11r_r1key_timeout(self, v, load=False):
    """
    Setter method for dot11r_r1key_timeout, mapped from YANG variable /ssids/ssid/dot11r/config/dot11r_r1key_timeout (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dot11r_r1key_timeout is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dot11r_r1key_timeout() directly.

    YANG Description: TTL for the Pairwise Master Key R1.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="dot11r-r1key-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint16', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dot11r_r1key_timeout must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="dot11r-r1key-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint16', is_config=True)""",
        })

    self.__dot11r_r1key_timeout = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dot11r_r1key_timeout(self):
    self.__dot11r_r1key_timeout = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="dot11r-r1key-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint16', is_config=True)

  dot11r = __builtin__.property(_get_dot11r, _set_dot11r)
  dot11r_domainid = __builtin__.property(_get_dot11r_domainid, _set_dot11r_domainid)
  dot11r_method = __builtin__.property(_get_dot11r_method, _set_dot11r_method)
  dot11r_r1key_timeout = __builtin__.property(_get_dot11r_r1key_timeout, _set_dot11r_r1key_timeout)


  _pyangbind_elements = OrderedDict([('dot11r', dot11r), ('dot11r_domainid', dot11r_domainid), ('dot11r_method', dot11r_method), ('dot11r_r1key_timeout', dot11r_r1key_timeout), ])


class yc_state_openconfig_wifi_mac__ssids_ssid_dot11r_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-wifi-mac - based on the path /ssids/ssid/dot11r/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Container for 802.11r state elements.
  """
  __slots__ = ('_path_helper', '_extmethods', '__dot11r','__dot11r_domainid','__dot11r_method','__dot11r_r1key_timeout',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi-mac'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__dot11r = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dot11r", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)
    self.__dot11r_domainid = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="dot11r-domainid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint16', is_config=False)
    self.__dot11r_method = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OVA': {}, 'ODS': {}},), default=six.text_type("OVA"), is_leaf=True, yang_name="dot11r-method", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='enumeration', is_config=False)
    self.__dot11r_r1key_timeout = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="dot11r-r1key-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint16', 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 ['ssids', 'ssid', 'dot11r', 'state']

  def _get_dot11r(self):
    """
    Getter method for dot11r, mapped from YANG variable /ssids/ssid/dot11r/state/dot11r (boolean)

    YANG Description: Enable/disable 802.11r FT.
    """
    return self.__dot11r
      
  def _set_dot11r(self, v, load=False):
    """
    Setter method for dot11r, mapped from YANG variable /ssids/ssid/dot11r/state/dot11r (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dot11r is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dot11r() directly.

    YANG Description: Enable/disable 802.11r FT.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="dot11r", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dot11r must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dot11r", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)""",
        })

    self.__dot11r = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dot11r(self):
    self.__dot11r = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dot11r", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)


  def _get_dot11r_domainid(self):
    """
    Getter method for dot11r_domainid, mapped from YANG variable /ssids/ssid/dot11r/state/dot11r_domainid (uint16)

    YANG Description: Specify the mobility domain id (MDID) where PMK-R0
distribution will occur. Specifically, which APs will receive
PMK-R0 if using 802.11r (FT).
    """
    return self.__dot11r_domainid
      
  def _set_dot11r_domainid(self, v, load=False):
    """
    Setter method for dot11r_domainid, mapped from YANG variable /ssids/ssid/dot11r/state/dot11r_domainid (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dot11r_domainid is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dot11r_domainid() directly.

    YANG Description: Specify the mobility domain id (MDID) where PMK-R0
distribution will occur. Specifically, which APs will receive
PMK-R0 if using 802.11r (FT).
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="dot11r-domainid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint16', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dot11r_domainid must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="dot11r-domainid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint16', is_config=False)""",
        })

    self.__dot11r_domainid = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dot11r_domainid(self):
    self.__dot11r_domainid = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="dot11r-domainid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint16', is_config=False)


  def _get_dot11r_method(self):
    """
    Getter method for dot11r_method, mapped from YANG variable /ssids/ssid/dot11r/state/dot11r_method (enumeration)

    YANG Description: The type of 802.11r FT in use.
    """
    return self.__dot11r_method
      
  def _set_dot11r_method(self, v, load=False):
    """
    Setter method for dot11r_method, mapped from YANG variable /ssids/ssid/dot11r/state/dot11r_method (enumeration)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dot11r_method is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dot11r_method() directly.

    YANG Description: The type of 802.11r FT in use.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OVA': {}, 'ODS': {}},), default=six.text_type("OVA"), is_leaf=True, yang_name="dot11r-method", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='enumeration', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dot11r_method must be of a type compatible with enumeration""",
          'defined-type': "openconfig-wifi-mac:enumeration",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OVA': {}, 'ODS': {}},), default=six.text_type("OVA"), is_leaf=True, yang_name="dot11r-method", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='enumeration', is_config=False)""",
        })

    self.__dot11r_method = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dot11r_method(self):
    self.__dot11r_method = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OVA': {}, 'ODS': {}},), default=six.text_type("OVA"), is_leaf=True, yang_name="dot11r-method", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='enumeration', is_config=False)


  def _get_dot11r_r1key_timeout(self):
    """
    Getter method for dot11r_r1key_timeout, mapped from YANG variable /ssids/ssid/dot11r/state/dot11r_r1key_timeout (uint16)

    YANG Description: TTL for the Pairwise Master Key R1.
    """
    return self.__dot11r_r1key_timeout
      
  def _set_dot11r_r1key_timeout(self, v, load=False):
    """
    Setter method for dot11r_r1key_timeout, mapped from YANG variable /ssids/ssid/dot11r/state/dot11r_r1key_timeout (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dot11r_r1key_timeout is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dot11r_r1key_timeout() directly.

    YANG Description: TTL for the Pairwise Master Key R1.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="dot11r-r1key-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint16', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dot11r_r1key_timeout must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="dot11r-r1key-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint16', is_config=False)""",
        })

    self.__dot11r_r1key_timeout = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dot11r_r1key_timeout(self):
    self.__dot11r_r1key_timeout = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="dot11r-r1key-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint16', is_config=False)

  dot11r = __builtin__.property(_get_dot11r)
  dot11r_domainid = __builtin__.property(_get_dot11r_domainid)
  dot11r_method = __builtin__.property(_get_dot11r_method)
  dot11r_r1key_timeout = __builtin__.property(_get_dot11r_r1key_timeout)


  _pyangbind_elements = OrderedDict([('dot11r', dot11r), ('dot11r_domainid', dot11r_domainid), ('dot11r_method', dot11r_method), ('dot11r_r1key_timeout', dot11r_r1key_timeout), ])


class yc_dot11r_openconfig_wifi_mac__ssids_ssid_dot11r(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-wifi-mac - based on the path /ssids/ssid/dot11r. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Top-level container for 802.11r configuration and
state container.
  """
  __slots__ = ('_path_helper', '_extmethods', '__config','__state',)

  _yang_name = 'dot11r'
  _yang_namespace = 'http://openconfig.net/yang/wifi-mac'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__config = YANGDynClass(base=yc_config_openconfig_wifi_mac__ssids_ssid_dot11r_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_wifi_mac__ssids_ssid_dot11r_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/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)

    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 ['ssids', 'ssid', 'dot11r']

  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /ssids/ssid/dot11r/config (container)

    YANG Description: Container for 802.11r configuration elements.
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /ssids/ssid/dot11r/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Container for 802.11r configuration elements.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_wifi_mac__ssids_ssid_dot11r_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_wifi_mac__ssids_ssid_dot11r_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_wifi_mac__ssids_ssid_dot11r_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /ssids/ssid/dot11r/state (container)

    YANG Description: Container for 802.11r state elements.
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /ssids/ssid/dot11r/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: Container for 802.11r state elements.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_wifi_mac__ssids_ssid_dot11r_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/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_wifi_mac__ssids_ssid_dot11r_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/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_wifi_mac__ssids_ssid_dot11r_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/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)

  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)


  _pyangbind_elements = OrderedDict([('config', config), ('state', state), ])


class yc_config_openconfig_wifi_mac__ssids_ssid_dot11v_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-wifi-mac - based on the path /ssids/ssid/dot11v/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Container for 802.11v configuration elements.
  """
  __slots__ = ('_path_helper', '_extmethods', '__dot11v_dms','__dot11v_bssidle','__dot11v_bssidle_timeout','__dot11v_bsstransition',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi-mac'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__dot11v_dms = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dot11v-dms", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)
    self.__dot11v_bssidle = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dot11v-bssidle", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)
    self.__dot11v_bssidle_timeout = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="dot11v-bssidle-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint16', is_config=True)
    self.__dot11v_bsstransition = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dot11v-bsstransition", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)

    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 ['ssids', 'ssid', 'dot11v', 'config']

  def _get_dot11v_dms(self):
    """
    Getter method for dot11v_dms, mapped from YANG variable /ssids/ssid/dot11v/config/dot11v_dms (boolean)

    YANG Description: 802.11v Directed Multicast Service enabled/disabled.
    """
    return self.__dot11v_dms
      
  def _set_dot11v_dms(self, v, load=False):
    """
    Setter method for dot11v_dms, mapped from YANG variable /ssids/ssid/dot11v/config/dot11v_dms (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dot11v_dms is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dot11v_dms() directly.

    YANG Description: 802.11v Directed Multicast Service enabled/disabled.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="dot11v-dms", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dot11v_dms must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dot11v-dms", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)""",
        })

    self.__dot11v_dms = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dot11v_dms(self):
    self.__dot11v_dms = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dot11v-dms", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)


  def _get_dot11v_bssidle(self):
    """
    Getter method for dot11v_bssidle, mapped from YANG variable /ssids/ssid/dot11v/config/dot11v_bssidle (boolean)

    YANG Description: 802.11v BSS Max Idle enabled/disabled.
    """
    return self.__dot11v_bssidle
      
  def _set_dot11v_bssidle(self, v, load=False):
    """
    Setter method for dot11v_bssidle, mapped from YANG variable /ssids/ssid/dot11v/config/dot11v_bssidle (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dot11v_bssidle is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dot11v_bssidle() directly.

    YANG Description: 802.11v BSS Max Idle enabled/disabled.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="dot11v-bssidle", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dot11v_bssidle must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dot11v-bssidle", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)""",
        })

    self.__dot11v_bssidle = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dot11v_bssidle(self):
    self.__dot11v_bssidle = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dot11v-bssidle", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)


  def _get_dot11v_bssidle_timeout(self):
    """
    Getter method for dot11v_bssidle_timeout, mapped from YANG variable /ssids/ssid/dot11v/config/dot11v_bssidle_timeout (uint16)

    YANG Description: 802.11v BSS Max Idle timeout.
    """
    return self.__dot11v_bssidle_timeout
      
  def _set_dot11v_bssidle_timeout(self, v, load=False):
    """
    Setter method for dot11v_bssidle_timeout, mapped from YANG variable /ssids/ssid/dot11v/config/dot11v_bssidle_timeout (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dot11v_bssidle_timeout is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dot11v_bssidle_timeout() directly.

    YANG Description: 802.11v BSS Max Idle timeout.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="dot11v-bssidle-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint16', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dot11v_bssidle_timeout must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="dot11v-bssidle-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint16', is_config=True)""",
        })

    self.__dot11v_bssidle_timeout = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dot11v_bssidle_timeout(self):
    self.__dot11v_bssidle_timeout = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="dot11v-bssidle-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint16', is_config=True)


  def _get_dot11v_bsstransition(self):
    """
    Getter method for dot11v_bsstransition, mapped from YANG variable /ssids/ssid/dot11v/config/dot11v_bsstransition (boolean)

    YANG Description: 802.11v BSS Transition enabled/disabled.
    """
    return self.__dot11v_bsstransition
      
  def _set_dot11v_bsstransition(self, v, load=False):
    """
    Setter method for dot11v_bsstransition, mapped from YANG variable /ssids/ssid/dot11v/config/dot11v_bsstransition (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dot11v_bsstransition is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dot11v_bsstransition() directly.

    YANG Description: 802.11v BSS Transition enabled/disabled.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="dot11v-bsstransition", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dot11v_bsstransition must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dot11v-bsstransition", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)""",
        })

    self.__dot11v_bsstransition = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dot11v_bsstransition(self):
    self.__dot11v_bsstransition = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dot11v-bsstransition", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)

  dot11v_dms = __builtin__.property(_get_dot11v_dms, _set_dot11v_dms)
  dot11v_bssidle = __builtin__.property(_get_dot11v_bssidle, _set_dot11v_bssidle)
  dot11v_bssidle_timeout = __builtin__.property(_get_dot11v_bssidle_timeout, _set_dot11v_bssidle_timeout)
  dot11v_bsstransition = __builtin__.property(_get_dot11v_bsstransition, _set_dot11v_bsstransition)


  _pyangbind_elements = OrderedDict([('dot11v_dms', dot11v_dms), ('dot11v_bssidle', dot11v_bssidle), ('dot11v_bssidle_timeout', dot11v_bssidle_timeout), ('dot11v_bsstransition', dot11v_bsstransition), ])


class yc_state_openconfig_wifi_mac__ssids_ssid_dot11v_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-wifi-mac - based on the path /ssids/ssid/dot11v/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Container for 802.11r state elements.
  """
  __slots__ = ('_path_helper', '_extmethods', '__dot11v_dms','__dot11v_bssidle','__dot11v_bssidle_timeout','__dot11v_bsstransition',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi-mac'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__dot11v_dms = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dot11v-dms", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)
    self.__dot11v_bssidle = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dot11v-bssidle", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)
    self.__dot11v_bssidle_timeout = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="dot11v-bssidle-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint16', is_config=False)
    self.__dot11v_bsstransition = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dot11v-bsstransition", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', 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 ['ssids', 'ssid', 'dot11v', 'state']

  def _get_dot11v_dms(self):
    """
    Getter method for dot11v_dms, mapped from YANG variable /ssids/ssid/dot11v/state/dot11v_dms (boolean)

    YANG Description: 802.11v Directed Multicast Service enabled/disabled.
    """
    return self.__dot11v_dms
      
  def _set_dot11v_dms(self, v, load=False):
    """
    Setter method for dot11v_dms, mapped from YANG variable /ssids/ssid/dot11v/state/dot11v_dms (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dot11v_dms is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dot11v_dms() directly.

    YANG Description: 802.11v Directed Multicast Service enabled/disabled.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="dot11v-dms", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dot11v_dms must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dot11v-dms", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)""",
        })

    self.__dot11v_dms = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dot11v_dms(self):
    self.__dot11v_dms = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dot11v-dms", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)


  def _get_dot11v_bssidle(self):
    """
    Getter method for dot11v_bssidle, mapped from YANG variable /ssids/ssid/dot11v/state/dot11v_bssidle (boolean)

    YANG Description: 802.11v BSS Max Idle enabled/disabled.
    """
    return self.__dot11v_bssidle
      
  def _set_dot11v_bssidle(self, v, load=False):
    """
    Setter method for dot11v_bssidle, mapped from YANG variable /ssids/ssid/dot11v/state/dot11v_bssidle (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dot11v_bssidle is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dot11v_bssidle() directly.

    YANG Description: 802.11v BSS Max Idle enabled/disabled.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="dot11v-bssidle", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dot11v_bssidle must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dot11v-bssidle", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)""",
        })

    self.__dot11v_bssidle = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dot11v_bssidle(self):
    self.__dot11v_bssidle = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dot11v-bssidle", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)


  def _get_dot11v_bssidle_timeout(self):
    """
    Getter method for dot11v_bssidle_timeout, mapped from YANG variable /ssids/ssid/dot11v/state/dot11v_bssidle_timeout (uint16)

    YANG Description: 802.11v BSS Max Idle timeout.
    """
    return self.__dot11v_bssidle_timeout
      
  def _set_dot11v_bssidle_timeout(self, v, load=False):
    """
    Setter method for dot11v_bssidle_timeout, mapped from YANG variable /ssids/ssid/dot11v/state/dot11v_bssidle_timeout (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dot11v_bssidle_timeout is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dot11v_bssidle_timeout() directly.

    YANG Description: 802.11v BSS Max Idle timeout.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="dot11v-bssidle-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint16', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dot11v_bssidle_timeout must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="dot11v-bssidle-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint16', is_config=False)""",
        })

    self.__dot11v_bssidle_timeout = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dot11v_bssidle_timeout(self):
    self.__dot11v_bssidle_timeout = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="dot11v-bssidle-timeout", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint16', is_config=False)


  def _get_dot11v_bsstransition(self):
    """
    Getter method for dot11v_bsstransition, mapped from YANG variable /ssids/ssid/dot11v/state/dot11v_bsstransition (boolean)

    YANG Description: 802.11v BSS Transition enabled/disabled.
    """
    return self.__dot11v_bsstransition
      
  def _set_dot11v_bsstransition(self, v, load=False):
    """
    Setter method for dot11v_bsstransition, mapped from YANG variable /ssids/ssid/dot11v/state/dot11v_bsstransition (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dot11v_bsstransition is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dot11v_bsstransition() directly.

    YANG Description: 802.11v BSS Transition enabled/disabled.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="dot11v-bsstransition", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dot11v_bsstransition must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dot11v-bsstransition", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)""",
        })

    self.__dot11v_bsstransition = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dot11v_bsstransition(self):
    self.__dot11v_bsstransition = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="dot11v-bsstransition", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)

  dot11v_dms = __builtin__.property(_get_dot11v_dms)
  dot11v_bssidle = __builtin__.property(_get_dot11v_bssidle)
  dot11v_bssidle_timeout = __builtin__.property(_get_dot11v_bssidle_timeout)
  dot11v_bsstransition = __builtin__.property(_get_dot11v_bsstransition)


  _pyangbind_elements = OrderedDict([('dot11v_dms', dot11v_dms), ('dot11v_bssidle', dot11v_bssidle), ('dot11v_bssidle_timeout', dot11v_bssidle_timeout), ('dot11v_bsstransition', dot11v_bsstransition), ])


class yc_dot11v_openconfig_wifi_mac__ssids_ssid_dot11v(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-wifi-mac - based on the path /ssids/ssid/dot11v. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Top-level container for 802.11v configuration and
operational state data.
  """
  __slots__ = ('_path_helper', '_extmethods', '__config','__state',)

  _yang_name = 'dot11v'
  _yang_namespace = 'http://openconfig.net/yang/wifi-mac'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__config = YANGDynClass(base=yc_config_openconfig_wifi_mac__ssids_ssid_dot11v_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_wifi_mac__ssids_ssid_dot11v_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/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)

    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 ['ssids', 'ssid', 'dot11v']

  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /ssids/ssid/dot11v/config (container)

    YANG Description: Container for 802.11v configuration elements.
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /ssids/ssid/dot11v/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Container for 802.11v configuration elements.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_wifi_mac__ssids_ssid_dot11v_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_wifi_mac__ssids_ssid_dot11v_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_wifi_mac__ssids_ssid_dot11v_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /ssids/ssid/dot11v/state (container)

    YANG Description: Container for 802.11r state elements.
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /ssids/ssid/dot11v/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: Container for 802.11r state elements.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_wifi_mac__ssids_ssid_dot11v_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/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_wifi_mac__ssids_ssid_dot11v_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/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_wifi_mac__ssids_ssid_dot11v_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/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)

  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)


  _pyangbind_elements = OrderedDict([('config', config), ('state', state), ])


class yc_counters_openconfig_wifi_mac__ssids_ssid_clients_client_state_counters(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-wifi-mac - based on the path /ssids/ssid/clients/client/state/counters. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Per-client counters.
  """
  __slots__ = ('_path_helper', '_extmethods', '__tx_bytes','__rx_bytes','__rx_retries','__rx_total','__tx_retries','__tx_total',)

  _yang_name = 'counters'
  _yang_namespace = 'http://openconfig.net/yang/wifi-mac'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__tx_bytes = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-bytes", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__rx_bytes = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-bytes", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__rx_retries = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-retries", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__rx_total = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-total", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__tx_retries = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-retries", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    self.__tx_total = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-total", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', 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 ['ssids', 'ssid', 'clients', 'client', 'state', 'counters']

  def _get_tx_bytes(self):
    """
    Getter method for tx_bytes, mapped from YANG variable /ssids/ssid/clients/client/state/counters/tx_bytes (oc-yang:counter64)

    YANG Description: Tx Bytes to this client.
    """
    return self.__tx_bytes
      
  def _set_tx_bytes(self, v, load=False):
    """
    Setter method for tx_bytes, mapped from YANG variable /ssids/ssid/clients/client/state/counters/tx_bytes (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tx_bytes is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tx_bytes() directly.

    YANG Description: Tx Bytes to this client.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-bytes", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tx_bytes must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-bytes", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__tx_bytes = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_tx_bytes(self):
    self.__tx_bytes = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-bytes", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_rx_bytes(self):
    """
    Getter method for rx_bytes, mapped from YANG variable /ssids/ssid/clients/client/state/counters/rx_bytes (oc-yang:counter64)

    YANG Description: Rx Bytes from this client.
    """
    return self.__rx_bytes
      
  def _set_rx_bytes(self, v, load=False):
    """
    Setter method for rx_bytes, mapped from YANG variable /ssids/ssid/clients/client/state/counters/rx_bytes (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_bytes is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_bytes() directly.

    YANG Description: Rx Bytes from this client.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-bytes", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_bytes must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-bytes", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__rx_bytes = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rx_bytes(self):
    self.__rx_bytes = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-bytes", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_rx_retries(self):
    """
    Getter method for rx_retries, mapped from YANG variable /ssids/ssid/clients/client/state/counters/rx_retries (oc-yang:counter64)

    YANG Description: Rx retried frames from this client.
    """
    return self.__rx_retries
      
  def _set_rx_retries(self, v, load=False):
    """
    Setter method for rx_retries, mapped from YANG variable /ssids/ssid/clients/client/state/counters/rx_retries (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_retries is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_retries() directly.

    YANG Description: Rx retried frames from this client.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-retries", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_retries must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-retries", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__rx_retries = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rx_retries(self):
    self.__rx_retries = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-retries", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_rx_total(self):
    """
    Getter method for rx_total, mapped from YANG variable /ssids/ssid/clients/client/state/counters/rx_total (oc-yang:counter64)

    YANG Description: Rx frames from this client.
    """
    return self.__rx_total
      
  def _set_rx_total(self, v, load=False):
    """
    Setter method for rx_total, mapped from YANG variable /ssids/ssid/clients/client/state/counters/rx_total (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_total is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_total() directly.

    YANG Description: Rx frames from this client.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-total", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_total must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-total", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__rx_total = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rx_total(self):
    self.__rx_total = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="rx-total", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_tx_retries(self):
    """
    Getter method for tx_retries, mapped from YANG variable /ssids/ssid/clients/client/state/counters/tx_retries (oc-yang:counter64)

    YANG Description: Tx retried frames to this client.
    """
    return self.__tx_retries
      
  def _set_tx_retries(self, v, load=False):
    """
    Setter method for tx_retries, mapped from YANG variable /ssids/ssid/clients/client/state/counters/tx_retries (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tx_retries is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tx_retries() directly.

    YANG Description: Tx retried frames to this client.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-retries", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tx_retries must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-retries", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__tx_retries = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_tx_retries(self):
    self.__tx_retries = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-retries", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)


  def _get_tx_total(self):
    """
    Getter method for tx_total, mapped from YANG variable /ssids/ssid/clients/client/state/counters/tx_total (oc-yang:counter64)

    YANG Description: Tx frames to this client.
    """
    return self.__tx_total
      
  def _set_tx_total(self, v, load=False):
    """
    Setter method for tx_total, mapped from YANG variable /ssids/ssid/clients/client/state/counters/tx_total (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tx_total is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tx_total() directly.

    YANG Description: Tx frames to this client.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-total", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tx_total must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-total", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__tx_total = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_tx_total(self):
    self.__tx_total = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tx-total", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:counter64', is_config=False)

  tx_bytes = __builtin__.property(_get_tx_bytes)
  rx_bytes = __builtin__.property(_get_rx_bytes)
  rx_retries = __builtin__.property(_get_rx_retries)
  rx_total = __builtin__.property(_get_rx_total)
  tx_retries = __builtin__.property(_get_tx_retries)
  tx_total = __builtin__.property(_get_tx_total)


  _pyangbind_elements = OrderedDict([('tx_bytes', tx_bytes), ('rx_bytes', rx_bytes), ('rx_retries', rx_retries), ('rx_total', rx_total), ('tx_retries', tx_retries), ('tx_total', tx_total), ])


class yc_state_openconfig_wifi_mac__ssids_ssid_clients_client_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-wifi-mac - based on the path /ssids/ssid/clients/client/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Client state data.
  """
  __slots__ = ('_path_helper', '_extmethods', '__mac','__counters',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi-mac'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__mac = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="mac", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:mac-address', is_config=False)
    self.__counters = YANGDynClass(base=yc_counters_openconfig_wifi_mac__ssids_ssid_clients_client_state_counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', 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 ['ssids', 'ssid', 'clients', 'client', 'state']

  def _get_mac(self):
    """
    Getter method for mac, mapped from YANG variable /ssids/ssid/clients/client/state/mac (oc-yang:mac-address)

    YANG Description: MAC address of the client.
    """
    return self.__mac
      
  def _set_mac(self, v, load=False):
    """
    Setter method for mac, mapped from YANG variable /ssids/ssid/clients/client/state/mac (oc-yang:mac-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mac is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mac() directly.

    YANG Description: MAC address of the client.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="mac", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:mac-address', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mac must be of a type compatible with oc-yang:mac-address""",
          'defined-type': "oc-yang:mac-address",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="mac", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:mac-address', is_config=False)""",
        })

    self.__mac = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mac(self):
    self.__mac = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="mac", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:mac-address', is_config=False)


  def _get_counters(self):
    """
    Getter method for counters, mapped from YANG variable /ssids/ssid/clients/client/state/counters (container)

    YANG Description: Per-client counters.
    """
    return self.__counters
      
  def _set_counters(self, v, load=False):
    """
    Setter method for counters, mapped from YANG variable /ssids/ssid/clients/client/state/counters (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_counters is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_counters() directly.

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

    self.__counters = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_counters(self):
    self.__counters = YANGDynClass(base=yc_counters_openconfig_wifi_mac__ssids_ssid_clients_client_state_counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=False)

  mac = __builtin__.property(_get_mac)
  counters = __builtin__.property(_get_counters)


  _pyangbind_elements = OrderedDict([('mac', mac), ('counters', counters), ])


class yc_state_openconfig_wifi_mac__ssids_ssid_clients_client_client_rf_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-wifi-mac - based on the path /ssids/ssid/clients/client/client-rf/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Container for RF related client state data.
  """
  __slots__ = ('_path_helper', '_extmethods', '__rssi','__snr','__ss','__phy_rate','__rx_phy_rate','__tx_phy_rate','__connection_mode','__frequency',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi-mac'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__rssi = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), is_leaf=True, yang_name="rssi", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='int8', is_config=False)
    self.__snr = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="snr", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=False)
    self.__ss = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="ss", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=False)
    self.__phy_rate = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="phy-rate", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint16', is_config=False)
    self.__rx_phy_rate = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="rx-phy-rate", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint16', is_config=False)
    self.__tx_phy_rate = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="tx-phy-rate", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint16', is_config=False)
    self.__connection_mode = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'A': {}, 'B': {}, 'G': {}, 'N': {}, 'AC': {}, 'AX': {}},), is_leaf=True, yang_name="connection-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='enumeration', is_config=False)
    self.__frequency = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="frequency", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', 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 ['ssids', 'ssid', 'clients', 'client', 'client-rf', 'state']

  def _get_rssi(self):
    """
    Getter method for rssi, mapped from YANG variable /ssids/ssid/clients/client/client_rf/state/rssi (int8)

    YANG Description: The RSSI of this client in dBm. Expressed as negative
number.
    """
    return self.__rssi
      
  def _set_rssi(self, v, load=False):
    """
    Setter method for rssi, mapped from YANG variable /ssids/ssid/clients/client/client_rf/state/rssi (int8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rssi is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rssi() directly.

    YANG Description: The RSSI of this client in dBm. Expressed as negative
number.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), is_leaf=True, yang_name="rssi", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='int8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rssi must be of a type compatible with int8""",
          'defined-type': "int8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), is_leaf=True, yang_name="rssi", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='int8', is_config=False)""",
        })

    self.__rssi = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rssi(self):
    self.__rssi = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), is_leaf=True, yang_name="rssi", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='int8', is_config=False)


  def _get_snr(self):
    """
    Getter method for snr, mapped from YANG variable /ssids/ssid/clients/client/client_rf/state/snr (uint8)

    YANG Description: The SNR of AP to Client, in dB.
    """
    return self.__snr
      
  def _set_snr(self, v, load=False):
    """
    Setter method for snr, mapped from YANG variable /ssids/ssid/clients/client/client_rf/state/snr (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_snr is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_snr() directly.

    YANG Description: The SNR of AP to Client, in dB.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="snr", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """snr must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="snr", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=False)""",
        })

    self.__snr = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_snr(self):
    self.__snr = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="snr", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=False)


  def _get_ss(self):
    """
    Getter method for ss, mapped from YANG variable /ssids/ssid/clients/client/client_rf/state/ss (uint8)

    YANG Description: Number of Spatial Streams supported by the client.
    """
    return self.__ss
      
  def _set_ss(self, v, load=False):
    """
    Setter method for ss, mapped from YANG variable /ssids/ssid/clients/client/client_rf/state/ss (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ss is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ss() directly.

    YANG Description: Number of Spatial Streams supported by the client.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="ss", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ss must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="ss", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=False)""",
        })

    self.__ss = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ss(self):
    self.__ss = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="ss", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=False)


  def _get_phy_rate(self):
    """
    Getter method for phy_rate, mapped from YANG variable /ssids/ssid/clients/client/client_rf/state/phy_rate (uint16)

    YANG Description: Last used PHY rate of connected client.
    """
    return self.__phy_rate
      
  def _set_phy_rate(self, v, load=False):
    """
    Setter method for phy_rate, mapped from YANG variable /ssids/ssid/clients/client/client_rf/state/phy_rate (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_phy_rate is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_phy_rate() directly.

    YANG Description: Last used PHY rate of connected client.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="phy-rate", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint16', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """phy_rate must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="phy-rate", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint16', is_config=False)""",
        })

    self.__phy_rate = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_phy_rate(self):
    self.__phy_rate = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="phy-rate", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint16', is_config=False)


  def _get_rx_phy_rate(self):
    """
    Getter method for rx_phy_rate, mapped from YANG variable /ssids/ssid/clients/client/client_rf/state/rx_phy_rate (uint16)

    YANG Description: Last used PHY rate received from connected client in Mbps.
    """
    return self.__rx_phy_rate
      
  def _set_rx_phy_rate(self, v, load=False):
    """
    Setter method for rx_phy_rate, mapped from YANG variable /ssids/ssid/clients/client/client_rf/state/rx_phy_rate (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_phy_rate is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_phy_rate() directly.

    YANG Description: Last used PHY rate received from connected client in Mbps.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="rx-phy-rate", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint16', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_phy_rate must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="rx-phy-rate", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint16', is_config=False)""",
        })

    self.__rx_phy_rate = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rx_phy_rate(self):
    self.__rx_phy_rate = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="rx-phy-rate", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint16', is_config=False)


  def _get_tx_phy_rate(self):
    """
    Getter method for tx_phy_rate, mapped from YANG variable /ssids/ssid/clients/client/client_rf/state/tx_phy_rate (uint16)

    YANG Description: Last used PHY rate transmitted to connected client in Mbps.
    """
    return self.__tx_phy_rate
      
  def _set_tx_phy_rate(self, v, load=False):
    """
    Setter method for tx_phy_rate, mapped from YANG variable /ssids/ssid/clients/client/client_rf/state/tx_phy_rate (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tx_phy_rate is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tx_phy_rate() directly.

    YANG Description: Last used PHY rate transmitted to connected client in Mbps.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="tx-phy-rate", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint16', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tx_phy_rate must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="tx-phy-rate", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint16', is_config=False)""",
        })

    self.__tx_phy_rate = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_tx_phy_rate(self):
    self.__tx_phy_rate = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="tx-phy-rate", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint16', is_config=False)


  def _get_connection_mode(self):
    """
    Getter method for connection_mode, mapped from YANG variable /ssids/ssid/clients/client/client_rf/state/connection_mode (enumeration)

    YANG Description: 802.11 protocol used for the client's connection.
    """
    return self.__connection_mode
      
  def _set_connection_mode(self, v, load=False):
    """
    Setter method for connection_mode, mapped from YANG variable /ssids/ssid/clients/client/client_rf/state/connection_mode (enumeration)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_connection_mode is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_connection_mode() directly.

    YANG Description: 802.11 protocol used for the client's connection.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'A': {}, 'B': {}, 'G': {}, 'N': {}, 'AC': {}, 'AX': {}},), is_leaf=True, yang_name="connection-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='enumeration', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """connection_mode must be of a type compatible with enumeration""",
          'defined-type': "openconfig-wifi-mac:enumeration",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'A': {}, 'B': {}, 'G': {}, 'N': {}, 'AC': {}, 'AX': {}},), is_leaf=True, yang_name="connection-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='enumeration', is_config=False)""",
        })

    self.__connection_mode = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_connection_mode(self):
    self.__connection_mode = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'A': {}, 'B': {}, 'G': {}, 'N': {}, 'AC': {}, 'AX': {}},), is_leaf=True, yang_name="connection-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='enumeration', is_config=False)


  def _get_frequency(self):
    """
    Getter method for frequency, mapped from YANG variable /ssids/ssid/clients/client/client_rf/state/frequency (uint8)

    YANG Description: Frequency the client is utilizing. Typically, 2 for a client
connecting over 2.4GHz, 5 and 6 for 5/6GHz respectively.
    """
    return self.__frequency
      
  def _set_frequency(self, v, load=False):
    """
    Setter method for frequency, mapped from YANG variable /ssids/ssid/clients/client/client_rf/state/frequency (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_frequency is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_frequency() directly.

    YANG Description: Frequency the client is utilizing. Typically, 2 for a client
connecting over 2.4GHz, 5 and 6 for 5/6GHz respectively.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="frequency", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """frequency must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="frequency", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=False)""",
        })

    self.__frequency = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_frequency(self):
    self.__frequency = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="frequency", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=False)

  rssi = __builtin__.property(_get_rssi)
  snr = __builtin__.property(_get_snr)
  ss = __builtin__.property(_get_ss)
  phy_rate = __builtin__.property(_get_phy_rate)
  rx_phy_rate = __builtin__.property(_get_rx_phy_rate)
  tx_phy_rate = __builtin__.property(_get_tx_phy_rate)
  connection_mode = __builtin__.property(_get_connection_mode)
  frequency = __builtin__.property(_get_frequency)


  _pyangbind_elements = OrderedDict([('rssi', rssi), ('snr', snr), ('ss', ss), ('phy_rate', phy_rate), ('rx_phy_rate', rx_phy_rate), ('tx_phy_rate', tx_phy_rate), ('connection_mode', connection_mode), ('frequency', frequency), ])


class yc_client_rf_openconfig_wifi_mac__ssids_ssid_clients_client_client_rf(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-wifi-mac - based on the path /ssids/ssid/clients/client/client-rf. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: RF radio-data per non-AP STA.
  """
  __slots__ = ('_path_helper', '_extmethods', '__state',)

  _yang_name = 'client-rf'
  _yang_namespace = 'http://openconfig.net/yang/wifi-mac'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__state = YANGDynClass(base=yc_state_openconfig_wifi_mac__ssids_ssid_clients_client_client_rf_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/wifi-mac', defining_module='openconfig-wifi-mac', 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 ['ssids', 'ssid', 'clients', 'client', 'client-rf']

  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /ssids/ssid/clients/client/client_rf/state (container)

    YANG Description: Container for RF related client state data.
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /ssids/ssid/clients/client/client_rf/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: Container for RF related client state data.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_wifi_mac__ssids_ssid_clients_client_client_rf_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/wifi-mac', defining_module='openconfig-wifi-mac', 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=yc_state_openconfig_wifi_mac__ssids_ssid_clients_client_client_rf_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/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=False)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_wifi_mac__ssids_ssid_clients_client_client_rf_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/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=False)

  state = __builtin__.property(_get_state)


  _pyangbind_elements = OrderedDict([('state', state), ])


class yc_state_openconfig_wifi_mac__ssids_ssid_clients_client_client_capabilities_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-wifi-mac - based on the path /ssids/ssid/clients/client/client-capabilities/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Container for Client capabilities, as reported by Assoc. Req.
or Probe Req. frames. Capability is supported, if present.
  """
  __slots__ = ('_path_helper', '_extmethods', '__client_capabilities','__channel_support',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi-mac'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__client_capabilities = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'MU_BEAMFORMER': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:MU_BEAMFORMER': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:MU_BEAMFORMER': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'MU_BEAMFORMEE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:MU_BEAMFORMEE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:MU_BEAMFORMEE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'OFDMA': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:OFDMA': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:OFDMA': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'DOT_11R': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:DOT_11R': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:DOT_11R': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'DOT_11V': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:DOT_11V': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:DOT_11V': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'MFP': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:MFP': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:MFP': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="client-capabilities", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='identityref', is_config=False)
    self.__channel_support = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="channel-support", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', 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 ['ssids', 'ssid', 'clients', 'client', 'client-capabilities', 'state']

  def _get_client_capabilities(self):
    """
    Getter method for client_capabilities, mapped from YANG variable /ssids/ssid/clients/client/client_capabilities/state/client_capabilities (identityref)

    YANG Description: Features supported by client that are Optional
within the 802.11 specifications.
    """
    return self.__client_capabilities
      
  def _set_client_capabilities(self, v, load=False):
    """
    Setter method for client_capabilities, mapped from YANG variable /ssids/ssid/clients/client/client_capabilities/state/client_capabilities (identityref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_client_capabilities is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_client_capabilities() directly.

    YANG Description: Features supported by client that are Optional
within the 802.11 specifications.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'MU_BEAMFORMER': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:MU_BEAMFORMER': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:MU_BEAMFORMER': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'MU_BEAMFORMEE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:MU_BEAMFORMEE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:MU_BEAMFORMEE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'OFDMA': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:OFDMA': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:OFDMA': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'DOT_11R': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:DOT_11R': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:DOT_11R': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'DOT_11V': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:DOT_11V': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:DOT_11V': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'MFP': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:MFP': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:MFP': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="client-capabilities", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='identityref', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """client_capabilities must be of a type compatible with identityref""",
          'defined-type': "openconfig-wifi-mac:identityref",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'MU_BEAMFORMER': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:MU_BEAMFORMER': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:MU_BEAMFORMER': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'MU_BEAMFORMEE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:MU_BEAMFORMEE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:MU_BEAMFORMEE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'OFDMA': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:OFDMA': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:OFDMA': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'DOT_11R': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:DOT_11R': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:DOT_11R': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'DOT_11V': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:DOT_11V': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:DOT_11V': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'MFP': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:MFP': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:MFP': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="client-capabilities", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='identityref', is_config=False)""",
        })

    self.__client_capabilities = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_client_capabilities(self):
    self.__client_capabilities = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'MU_BEAMFORMER': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:MU_BEAMFORMER': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:MU_BEAMFORMER': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'MU_BEAMFORMEE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:MU_BEAMFORMEE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:MU_BEAMFORMEE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'OFDMA': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:OFDMA': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:OFDMA': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'DOT_11R': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:DOT_11R': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:DOT_11R': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'DOT_11V': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:DOT_11V': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:DOT_11V': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'MFP': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:MFP': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:MFP': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},)), is_leaf=False, yang_name="client-capabilities", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='identityref', is_config=False)


  def _get_channel_support(self):
    """
    Getter method for channel_support, mapped from YANG variable /ssids/ssid/clients/client/client_capabilities/state/channel_support (uint8)

    YANG Description: List of supported channels.
    """
    return self.__channel_support
      
  def _set_channel_support(self, v, load=False):
    """
    Setter method for channel_support, mapped from YANG variable /ssids/ssid/clients/client/client_capabilities/state/channel_support (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_channel_support is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_channel_support() directly.

    YANG Description: List of supported channels.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="channel-support", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """channel_support must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="channel-support", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=False)""",
        })

    self.__channel_support = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_channel_support(self):
    self.__channel_support = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)), is_leaf=False, yang_name="channel-support", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=False)

  client_capabilities = __builtin__.property(_get_client_capabilities)
  channel_support = __builtin__.property(_get_channel_support)


  _pyangbind_elements = OrderedDict([('client_capabilities', client_capabilities), ('channel_support', channel_support), ])


class yc_client_capabilities_openconfig_wifi_mac__ssids_ssid_clients_client_client_capabilities(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-wifi-mac - based on the path /ssids/ssid/clients/client/client-capabilities. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Capabilites as advertised by the Client.
  """
  __slots__ = ('_path_helper', '_extmethods', '__state',)

  _yang_name = 'client-capabilities'
  _yang_namespace = 'http://openconfig.net/yang/wifi-mac'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__state = YANGDynClass(base=yc_state_openconfig_wifi_mac__ssids_ssid_clients_client_client_capabilities_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/wifi-mac', defining_module='openconfig-wifi-mac', 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 ['ssids', 'ssid', 'clients', 'client', 'client-capabilities']

  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /ssids/ssid/clients/client/client_capabilities/state (container)

    YANG Description: Container for Client capabilities, as reported by Assoc. Req.
or Probe Req. frames. Capability is supported, if present.
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /ssids/ssid/clients/client/client_capabilities/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: Container for Client capabilities, as reported by Assoc. Req.
or Probe Req. frames. Capability is supported, if present.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_wifi_mac__ssids_ssid_clients_client_client_capabilities_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/wifi-mac', defining_module='openconfig-wifi-mac', 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=yc_state_openconfig_wifi_mac__ssids_ssid_clients_client_client_capabilities_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/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=False)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_wifi_mac__ssids_ssid_clients_client_client_capabilities_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/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=False)

  state = __builtin__.property(_get_state)


  _pyangbind_elements = OrderedDict([('state', state), ])


class yc_state_openconfig_wifi_mac__ssids_ssid_clients_client_dot11k_neighbors_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-wifi-mac - based on the path /ssids/ssid/clients/client/dot11k-neighbors/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Container for Client beacon reports. Requires 802.11k
enabled. See Sec. 5.2.7.1 of 802.11k-2008 Standard.
  """
  __slots__ = ('_path_helper', '_extmethods', '__neighbor_bssid','__neighbor_channel','__neighbor_rssi','__neighbor_antenna','__channel_load_report',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi-mac'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__neighbor_bssid = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="neighbor-bssid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:mac-address', is_config=False)
    self.__neighbor_channel = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="neighbor-channel", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=False)
    self.__neighbor_rssi = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), is_leaf=True, yang_name="neighbor-rssi", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='int8', is_config=False)
    self.__neighbor_antenna = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="neighbor-antenna", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=False)
    self.__channel_load_report = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="channel-load-report", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', 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 ['ssids', 'ssid', 'clients', 'client', 'dot11k-neighbors', 'state']

  def _get_neighbor_bssid(self):
    """
    Getter method for neighbor_bssid, mapped from YANG variable /ssids/ssid/clients/client/dot11k_neighbors/state/neighbor_bssid (oc-yang:mac-address)

    YANG Description: The BSSID of this neighbor.
    """
    return self.__neighbor_bssid
      
  def _set_neighbor_bssid(self, v, load=False):
    """
    Setter method for neighbor_bssid, mapped from YANG variable /ssids/ssid/clients/client/dot11k_neighbors/state/neighbor_bssid (oc-yang:mac-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_neighbor_bssid is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_neighbor_bssid() directly.

    YANG Description: The BSSID of this neighbor.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="neighbor-bssid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:mac-address', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """neighbor_bssid must be of a type compatible with oc-yang:mac-address""",
          'defined-type': "oc-yang:mac-address",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="neighbor-bssid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:mac-address', is_config=False)""",
        })

    self.__neighbor_bssid = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_neighbor_bssid(self):
    self.__neighbor_bssid = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="neighbor-bssid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-yang:mac-address', is_config=False)


  def _get_neighbor_channel(self):
    """
    Getter method for neighbor_channel, mapped from YANG variable /ssids/ssid/clients/client/dot11k_neighbors/state/neighbor_channel (uint8)

    YANG Description: The channel of this neighbor.
    """
    return self.__neighbor_channel
      
  def _set_neighbor_channel(self, v, load=False):
    """
    Setter method for neighbor_channel, mapped from YANG variable /ssids/ssid/clients/client/dot11k_neighbors/state/neighbor_channel (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_neighbor_channel is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_neighbor_channel() directly.

    YANG Description: The channel of this neighbor.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="neighbor-channel", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """neighbor_channel must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="neighbor-channel", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=False)""",
        })

    self.__neighbor_channel = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_neighbor_channel(self):
    self.__neighbor_channel = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="neighbor-channel", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=False)


  def _get_neighbor_rssi(self):
    """
    Getter method for neighbor_rssi, mapped from YANG variable /ssids/ssid/clients/client/dot11k_neighbors/state/neighbor_rssi (int8)

    YANG Description: The RSSI of this neighbor in dBm, expressed as a negative
number.
    """
    return self.__neighbor_rssi
      
  def _set_neighbor_rssi(self, v, load=False):
    """
    Setter method for neighbor_rssi, mapped from YANG variable /ssids/ssid/clients/client/dot11k_neighbors/state/neighbor_rssi (int8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_neighbor_rssi is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_neighbor_rssi() directly.

    YANG Description: The RSSI of this neighbor in dBm, expressed as a negative
number.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), is_leaf=True, yang_name="neighbor-rssi", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='int8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """neighbor_rssi must be of a type compatible with int8""",
          'defined-type': "int8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), is_leaf=True, yang_name="neighbor-rssi", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='int8', is_config=False)""",
        })

    self.__neighbor_rssi = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_neighbor_rssi(self):
    self.__neighbor_rssi = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), is_leaf=True, yang_name="neighbor-rssi", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='int8', is_config=False)


  def _get_neighbor_antenna(self):
    """
    Getter method for neighbor_antenna, mapped from YANG variable /ssids/ssid/clients/client/dot11k_neighbors/state/neighbor_antenna (uint8)

    YANG Description: Antenna details for this neighbor.
    """
    return self.__neighbor_antenna
      
  def _set_neighbor_antenna(self, v, load=False):
    """
    Setter method for neighbor_antenna, mapped from YANG variable /ssids/ssid/clients/client/dot11k_neighbors/state/neighbor_antenna (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_neighbor_antenna is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_neighbor_antenna() directly.

    YANG Description: Antenna details for this neighbor.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="neighbor-antenna", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """neighbor_antenna must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="neighbor-antenna", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=False)""",
        })

    self.__neighbor_antenna = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_neighbor_antenna(self):
    self.__neighbor_antenna = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="neighbor-antenna", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=False)


  def _get_channel_load_report(self):
    """
    Getter method for channel_load_report, mapped from YANG variable /ssids/ssid/clients/client/dot11k_neighbors/state/channel_load_report (uint8)

    YANG Description: Channel load, as reported by Client to AP
normalized to 255. See Sec. 10.11.9.3 of 802.11ac-2013
Spec.
    """
    return self.__channel_load_report
      
  def _set_channel_load_report(self, v, load=False):
    """
    Setter method for channel_load_report, mapped from YANG variable /ssids/ssid/clients/client/dot11k_neighbors/state/channel_load_report (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_channel_load_report is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_channel_load_report() directly.

    YANG Description: Channel load, as reported by Client to AP
normalized to 255. See Sec. 10.11.9.3 of 802.11ac-2013
Spec.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="channel-load-report", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """channel_load_report must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="channel-load-report", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=False)""",
        })

    self.__channel_load_report = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_channel_load_report(self):
    self.__channel_load_report = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="channel-load-report", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=False)

  neighbor_bssid = __builtin__.property(_get_neighbor_bssid)
  neighbor_channel = __builtin__.property(_get_neighbor_channel)
  neighbor_rssi = __builtin__.property(_get_neighbor_rssi)
  neighbor_antenna = __builtin__.property(_get_neighbor_antenna)
  channel_load_report = __builtin__.property(_get_channel_load_report)


  _pyangbind_elements = OrderedDict([('neighbor_bssid', neighbor_bssid), ('neighbor_channel', neighbor_channel), ('neighbor_rssi', neighbor_rssi), ('neighbor_antenna', neighbor_antenna), ('channel_load_report', channel_load_report), ])


class yc_dot11k_neighbors_openconfig_wifi_mac__ssids_ssid_clients_client_dot11k_neighbors(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-wifi-mac - based on the path /ssids/ssid/clients/client/dot11k-neighbors. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: 80211.k nieghbor information given from the Client to
the infrastructure.
  """
  __slots__ = ('_path_helper', '_extmethods', '__state',)

  _yang_name = 'dot11k-neighbors'
  _yang_namespace = 'http://openconfig.net/yang/wifi-mac'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__state = YANGDynClass(base=yc_state_openconfig_wifi_mac__ssids_ssid_clients_client_dot11k_neighbors_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/wifi-mac', defining_module='openconfig-wifi-mac', 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 ['ssids', 'ssid', 'clients', 'client', 'dot11k-neighbors']

  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /ssids/ssid/clients/client/dot11k_neighbors/state (container)

    YANG Description: Container for Client beacon reports. Requires 802.11k
enabled. See Sec. 5.2.7.1 of 802.11k-2008 Standard.
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /ssids/ssid/clients/client/dot11k_neighbors/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: Container for Client beacon reports. Requires 802.11k
enabled. See Sec. 5.2.7.1 of 802.11k-2008 Standard.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_wifi_mac__ssids_ssid_clients_client_dot11k_neighbors_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/wifi-mac', defining_module='openconfig-wifi-mac', 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=yc_state_openconfig_wifi_mac__ssids_ssid_clients_client_dot11k_neighbors_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/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=False)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_wifi_mac__ssids_ssid_clients_client_dot11k_neighbors_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/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=False)

  state = __builtin__.property(_get_state)


  _pyangbind_elements = OrderedDict([('state', state), ])


class yc_state_openconfig_wifi_mac__ssids_ssid_clients_client_client_connection_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-wifi-mac - based on the path /ssids/ssid/clients/client/client-connection/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Container for connection state related data, per client.
  """
  __slots__ = ('_path_helper', '_extmethods', '__client_state','__connection_time','__username','__hostname','__ipv4_address','__ipv6_addresses','__operating_system',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi-mac'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__client_state = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'ASSOCIATED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:ASSOCIATED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:ASSOCIATED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'L2AUTH_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:L2AUTH_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:L2AUTH_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'L3AUTH_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:L3AUTH_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:L3AUTH_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'DHCP_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:DHCP_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:DHCP_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'AUTHENTICATED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:AUTHENTICATED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:AUTHENTICATED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'L2AUTH_FAILURE_REJECT': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:L2AUTH_FAILURE_REJECT': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:L2AUTH_FAILURE_REJECT': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'L2AUTH_FAILURE_TIMEOUT': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:L2AUTH_FAILURE_TIMEOUT': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:L2AUTH_FAILURE_TIMEOUT': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'L3AUTH_FAILURE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:L3AUTH_FAILURE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:L3AUTH_FAILURE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'DHCP_FAILURE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:DHCP_FAILURE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:DHCP_FAILURE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'POWERSAVE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:POWERSAVE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:POWERSAVE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'BLACKLISTED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:BLACKLISTED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:BLACKLISTED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},), is_leaf=True, yang_name="client-state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='identityref', is_config=False)
    self.__connection_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="connection-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-types:timeticks64', is_config=False)
    self.__username = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="username", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='string', is_config=False)
    self.__hostname = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="hostname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='string', is_config=False)
    self.__ipv4_address = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'})), is_leaf=False, yang_name="ipv4-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-inet:ipv4-address', is_config=False)
    self.__ipv6_addresses = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'})), is_leaf=False, yang_name="ipv6-addresses", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-inet:ipv6-address', is_config=False)
    self.__operating_system = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="operating-system", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='string', 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 ['ssids', 'ssid', 'clients', 'client', 'client-connection', 'state']

  def _get_client_state(self):
    """
    Getter method for client_state, mapped from YANG variable /ssids/ssid/clients/client/client_connection/state/client_state (identityref)

    YANG Description: Various states a Client STA may be in.
    """
    return self.__client_state
      
  def _set_client_state(self, v, load=False):
    """
    Setter method for client_state, mapped from YANG variable /ssids/ssid/clients/client/client_connection/state/client_state (identityref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_client_state is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_client_state() directly.

    YANG Description: Various states a Client STA may be in.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'ASSOCIATED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:ASSOCIATED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:ASSOCIATED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'L2AUTH_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:L2AUTH_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:L2AUTH_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'L3AUTH_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:L3AUTH_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:L3AUTH_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'DHCP_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:DHCP_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:DHCP_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'AUTHENTICATED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:AUTHENTICATED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:AUTHENTICATED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'L2AUTH_FAILURE_REJECT': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:L2AUTH_FAILURE_REJECT': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:L2AUTH_FAILURE_REJECT': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'L2AUTH_FAILURE_TIMEOUT': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:L2AUTH_FAILURE_TIMEOUT': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:L2AUTH_FAILURE_TIMEOUT': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'L3AUTH_FAILURE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:L3AUTH_FAILURE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:L3AUTH_FAILURE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'DHCP_FAILURE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:DHCP_FAILURE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:DHCP_FAILURE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'POWERSAVE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:POWERSAVE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:POWERSAVE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'BLACKLISTED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:BLACKLISTED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:BLACKLISTED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},), is_leaf=True, yang_name="client-state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='identityref', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """client_state must be of a type compatible with identityref""",
          'defined-type': "openconfig-wifi-mac:identityref",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'ASSOCIATED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:ASSOCIATED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:ASSOCIATED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'L2AUTH_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:L2AUTH_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:L2AUTH_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'L3AUTH_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:L3AUTH_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:L3AUTH_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'DHCP_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:DHCP_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:DHCP_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'AUTHENTICATED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:AUTHENTICATED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:AUTHENTICATED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'L2AUTH_FAILURE_REJECT': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:L2AUTH_FAILURE_REJECT': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:L2AUTH_FAILURE_REJECT': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'L2AUTH_FAILURE_TIMEOUT': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:L2AUTH_FAILURE_TIMEOUT': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:L2AUTH_FAILURE_TIMEOUT': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'L3AUTH_FAILURE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:L3AUTH_FAILURE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:L3AUTH_FAILURE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'DHCP_FAILURE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:DHCP_FAILURE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:DHCP_FAILURE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'POWERSAVE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:POWERSAVE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:POWERSAVE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'BLACKLISTED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:BLACKLISTED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:BLACKLISTED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},), is_leaf=True, yang_name="client-state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='identityref', is_config=False)""",
        })

    self.__client_state = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_client_state(self):
    self.__client_state = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'ASSOCIATED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:ASSOCIATED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:ASSOCIATED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'L2AUTH_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:L2AUTH_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:L2AUTH_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'L3AUTH_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:L3AUTH_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:L3AUTH_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'DHCP_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:DHCP_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:DHCP_REQD': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'AUTHENTICATED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:AUTHENTICATED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:AUTHENTICATED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'L2AUTH_FAILURE_REJECT': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:L2AUTH_FAILURE_REJECT': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:L2AUTH_FAILURE_REJECT': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'L2AUTH_FAILURE_TIMEOUT': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:L2AUTH_FAILURE_TIMEOUT': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:L2AUTH_FAILURE_TIMEOUT': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'L3AUTH_FAILURE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:L3AUTH_FAILURE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:L3AUTH_FAILURE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'DHCP_FAILURE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:DHCP_FAILURE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:DHCP_FAILURE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'POWERSAVE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:POWERSAVE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:POWERSAVE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'BLACKLISTED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:BLACKLISTED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:BLACKLISTED': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},), is_leaf=True, yang_name="client-state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='identityref', is_config=False)


  def _get_connection_time(self):
    """
    Getter method for connection_time, mapped from YANG variable /ssids/ssid/clients/client/client_connection/state/connection_time (oc-types:timeticks64)

    YANG Description: Reports the time of Client Association. The value is the
timestamp in nanoseconds relative to the Unix Epoch
(Jan 1, 1970 00:00:00 UTC).
    """
    return self.__connection_time
      
  def _set_connection_time(self, v, load=False):
    """
    Setter method for connection_time, mapped from YANG variable /ssids/ssid/clients/client/client_connection/state/connection_time (oc-types:timeticks64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_connection_time is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_connection_time() directly.

    YANG Description: Reports the time of Client Association. The value is the
timestamp in nanoseconds relative to the Unix Epoch
(Jan 1, 1970 00:00:00 UTC).
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="connection-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-types:timeticks64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """connection_time must be of a type compatible with oc-types:timeticks64""",
          'defined-type': "oc-types:timeticks64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="connection-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-types:timeticks64', is_config=False)""",
        })

    self.__connection_time = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_connection_time(self):
    self.__connection_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="connection-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-types:timeticks64', is_config=False)


  def _get_username(self):
    """
    Getter method for username, mapped from YANG variable /ssids/ssid/clients/client/client_connection/state/username (string)

    YANG Description: Username of Client; can be outer-identity (if PEAP),
CN of certificate (if EAP-TLS), etc.
    """
    return self.__username
      
  def _set_username(self, v, load=False):
    """
    Setter method for username, mapped from YANG variable /ssids/ssid/clients/client/client_connection/state/username (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_username is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_username() directly.

    YANG Description: Username of Client; can be outer-identity (if PEAP),
CN of certificate (if EAP-TLS), etc.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="username", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='string', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """username must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="username", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='string', is_config=False)""",
        })

    self.__username = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_username(self):
    self.__username = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="username", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='string', is_config=False)


  def _get_hostname(self):
    """
    Getter method for hostname, mapped from YANG variable /ssids/ssid/clients/client/client_connection/state/hostname (string)

    YANG Description: Hostname of the client, as discovered via DHCP, mDNS
or otherwise.
    """
    return self.__hostname
      
  def _set_hostname(self, v, load=False):
    """
    Setter method for hostname, mapped from YANG variable /ssids/ssid/clients/client/client_connection/state/hostname (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_hostname is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_hostname() directly.

    YANG Description: Hostname of the client, as discovered via DHCP, mDNS
or otherwise.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="hostname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='string', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """hostname must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="hostname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='string', is_config=False)""",
        })

    self.__hostname = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_hostname(self):
    self.__hostname = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="hostname", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='string', is_config=False)


  def _get_ipv4_address(self):
    """
    Getter method for ipv4_address, mapped from YANG variable /ssids/ssid/clients/client/client_connection/state/ipv4_address (oc-inet:ipv4-address)

    YANG Description: IPv4 addresses of the client.
    """
    return self.__ipv4_address
      
  def _set_ipv4_address(self, v, load=False):
    """
    Setter method for ipv4_address, mapped from YANG variable /ssids/ssid/clients/client/client_connection/state/ipv4_address (oc-inet:ipv4-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ipv4_address is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ipv4_address() directly.

    YANG Description: IPv4 addresses of the client.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'})), is_leaf=False, yang_name="ipv4-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-inet:ipv4-address', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ipv4_address must be of a type compatible with oc-inet:ipv4-address""",
          'defined-type': "oc-inet:ipv4-address",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'})), is_leaf=False, yang_name="ipv4-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-inet:ipv4-address', is_config=False)""",
        })

    self.__ipv4_address = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ipv4_address(self):
    self.__ipv4_address = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'})), is_leaf=False, yang_name="ipv4-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-inet:ipv4-address', is_config=False)


  def _get_ipv6_addresses(self):
    """
    Getter method for ipv6_addresses, mapped from YANG variable /ssids/ssid/clients/client/client_connection/state/ipv6_addresses (oc-inet:ipv6-address)

    YANG Description: IPv6 addresses of the client.
    """
    return self.__ipv6_addresses
      
  def _set_ipv6_addresses(self, v, load=False):
    """
    Setter method for ipv6_addresses, mapped from YANG variable /ssids/ssid/clients/client/client_connection/state/ipv6_addresses (oc-inet:ipv6-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ipv6_addresses is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ipv6_addresses() directly.

    YANG Description: IPv6 addresses of the client.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'})), is_leaf=False, yang_name="ipv6-addresses", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-inet:ipv6-address', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ipv6_addresses must be of a type compatible with oc-inet:ipv6-address""",
          'defined-type': "oc-inet:ipv6-address",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'})), is_leaf=False, yang_name="ipv6-addresses", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-inet:ipv6-address', is_config=False)""",
        })

    self.__ipv6_addresses = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ipv6_addresses(self):
    self.__ipv6_addresses = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))'})), is_leaf=False, yang_name="ipv6-addresses", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='oc-inet:ipv6-address', is_config=False)


  def _get_operating_system(self):
    """
    Getter method for operating_system, mapped from YANG variable /ssids/ssid/clients/client/client_connection/state/operating_system (string)

    YANG Description: Optional/if known; the OS of the client.
    """
    return self.__operating_system
      
  def _set_operating_system(self, v, load=False):
    """
    Setter method for operating_system, mapped from YANG variable /ssids/ssid/clients/client/client_connection/state/operating_system (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_operating_system is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_operating_system() directly.

    YANG Description: Optional/if known; the OS of the client.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="operating-system", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='string', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """operating_system must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="operating-system", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='string', is_config=False)""",
        })

    self.__operating_system = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_operating_system(self):
    self.__operating_system = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="operating-system", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='string', is_config=False)

  client_state = __builtin__.property(_get_client_state)
  connection_time = __builtin__.property(_get_connection_time)
  username = __builtin__.property(_get_username)
  hostname = __builtin__.property(_get_hostname)
  ipv4_address = __builtin__.property(_get_ipv4_address)
  ipv6_addresses = __builtin__.property(_get_ipv6_addresses)
  operating_system = __builtin__.property(_get_operating_system)


  _pyangbind_elements = OrderedDict([('client_state', client_state), ('connection_time', connection_time), ('username', username), ('hostname', hostname), ('ipv4_address', ipv4_address), ('ipv6_addresses', ipv6_addresses), ('operating_system', operating_system), ])


class yc_client_connection_openconfig_wifi_mac__ssids_ssid_clients_client_client_connection(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-wifi-mac - based on the path /ssids/ssid/clients/client/client-connection. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Connection-state and meta-data associated with the
Client.
  """
  __slots__ = ('_path_helper', '_extmethods', '__state',)

  _yang_name = 'client-connection'
  _yang_namespace = 'http://openconfig.net/yang/wifi-mac'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__state = YANGDynClass(base=yc_state_openconfig_wifi_mac__ssids_ssid_clients_client_client_connection_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/wifi-mac', defining_module='openconfig-wifi-mac', 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 ['ssids', 'ssid', 'clients', 'client', 'client-connection']

  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /ssids/ssid/clients/client/client_connection/state (container)

    YANG Description: Container for connection state related data, per client.
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /ssids/ssid/clients/client/client_connection/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: Container for connection state related data, per client.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_wifi_mac__ssids_ssid_clients_client_client_connection_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/wifi-mac', defining_module='openconfig-wifi-mac', 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=yc_state_openconfig_wifi_mac__ssids_ssid_clients_client_client_connection_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/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=False)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_wifi_mac__ssids_ssid_clients_client_client_connection_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/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=False)

  state = __builtin__.property(_get_state)


  _pyangbind_elements = OrderedDict([('state', state), ])


class yc_client_openconfig_wifi_mac__ssids_ssid_clients_client(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-wifi-mac - based on the path /ssids/ssid/clients/client. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: List of clients per BSS.
  """
  __slots__ = ('_path_helper', '_extmethods', '__mac','__state','__client_rf','__client_capabilities','__dot11k_neighbors','__client_connection',)

  _yang_name = 'client'
  _yang_namespace = 'http://openconfig.net/yang/wifi-mac'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__mac = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="mac", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='leafref', is_config=False)
    self.__state = YANGDynClass(base=yc_state_openconfig_wifi_mac__ssids_ssid_clients_client_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/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=False)
    self.__client_rf = YANGDynClass(base=yc_client_rf_openconfig_wifi_mac__ssids_ssid_clients_client_client_rf, is_container='container', yang_name="client-rf", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=False)
    self.__client_capabilities = YANGDynClass(base=yc_client_capabilities_openconfig_wifi_mac__ssids_ssid_clients_client_client_capabilities, is_container='container', yang_name="client-capabilities", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=False)
    self.__dot11k_neighbors = YANGDynClass(base=yc_dot11k_neighbors_openconfig_wifi_mac__ssids_ssid_clients_client_dot11k_neighbors, is_container='container', yang_name="dot11k-neighbors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=False)
    self.__client_connection = YANGDynClass(base=yc_client_connection_openconfig_wifi_mac__ssids_ssid_clients_client_client_connection, is_container='container', yang_name="client-connection", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', 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 ['ssids', 'ssid', 'clients', 'client']

  def _get_mac(self):
    """
    Getter method for mac, mapped from YANG variable /ssids/ssid/clients/client/mac (leafref)

    YANG Description: The clients WiFi MAC address.
    """
    return self.__mac
      
  def _set_mac(self, v, load=False):
    """
    Setter method for mac, mapped from YANG variable /ssids/ssid/clients/client/mac (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mac is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mac() directly.

    YANG Description: The clients WiFi MAC address.
    """
    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="mac", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='leafref', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mac must be of a type compatible with leafref""",
          'defined-type': "leafref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="mac", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='leafref', is_config=False)""",
        })

    self.__mac = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_mac(self):
    self.__mac = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="mac", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='leafref', is_config=False)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /ssids/ssid/clients/client/state (container)

    YANG Description: Client state data.
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /ssids/ssid/clients/client/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: Client state data.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_wifi_mac__ssids_ssid_clients_client_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/wifi-mac', defining_module='openconfig-wifi-mac', 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=yc_state_openconfig_wifi_mac__ssids_ssid_clients_client_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/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=False)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_wifi_mac__ssids_ssid_clients_client_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/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=False)


  def _get_client_rf(self):
    """
    Getter method for client_rf, mapped from YANG variable /ssids/ssid/clients/client/client_rf (container)

    YANG Description: RF radio-data per non-AP STA.
    """
    return self.__client_rf
      
  def _set_client_rf(self, v, load=False):
    """
    Setter method for client_rf, mapped from YANG variable /ssids/ssid/clients/client/client_rf (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_client_rf is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_client_rf() directly.

    YANG Description: RF radio-data per non-AP STA.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_client_rf_openconfig_wifi_mac__ssids_ssid_clients_client_client_rf, is_container='container', yang_name="client-rf", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """client_rf must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_client_rf_openconfig_wifi_mac__ssids_ssid_clients_client_client_rf, is_container='container', yang_name="client-rf", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=False)""",
        })

    self.__client_rf = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_client_rf(self):
    self.__client_rf = YANGDynClass(base=yc_client_rf_openconfig_wifi_mac__ssids_ssid_clients_client_client_rf, is_container='container', yang_name="client-rf", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=False)


  def _get_client_capabilities(self):
    """
    Getter method for client_capabilities, mapped from YANG variable /ssids/ssid/clients/client/client_capabilities (container)

    YANG Description: Capabilites as advertised by the Client.
    """
    return self.__client_capabilities
      
  def _set_client_capabilities(self, v, load=False):
    """
    Setter method for client_capabilities, mapped from YANG variable /ssids/ssid/clients/client/client_capabilities (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_client_capabilities is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_client_capabilities() directly.

    YANG Description: Capabilites as advertised by the Client.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_client_capabilities_openconfig_wifi_mac__ssids_ssid_clients_client_client_capabilities, is_container='container', yang_name="client-capabilities", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """client_capabilities must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_client_capabilities_openconfig_wifi_mac__ssids_ssid_clients_client_client_capabilities, is_container='container', yang_name="client-capabilities", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=False)""",
        })

    self.__client_capabilities = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_client_capabilities(self):
    self.__client_capabilities = YANGDynClass(base=yc_client_capabilities_openconfig_wifi_mac__ssids_ssid_clients_client_client_capabilities, is_container='container', yang_name="client-capabilities", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=False)


  def _get_dot11k_neighbors(self):
    """
    Getter method for dot11k_neighbors, mapped from YANG variable /ssids/ssid/clients/client/dot11k_neighbors (container)

    YANG Description: 80211.k nieghbor information given from the Client to
the infrastructure.
    """
    return self.__dot11k_neighbors
      
  def _set_dot11k_neighbors(self, v, load=False):
    """
    Setter method for dot11k_neighbors, mapped from YANG variable /ssids/ssid/clients/client/dot11k_neighbors (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dot11k_neighbors is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dot11k_neighbors() directly.

    YANG Description: 80211.k nieghbor information given from the Client to
the infrastructure.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_dot11k_neighbors_openconfig_wifi_mac__ssids_ssid_clients_client_dot11k_neighbors, is_container='container', yang_name="dot11k-neighbors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dot11k_neighbors must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_dot11k_neighbors_openconfig_wifi_mac__ssids_ssid_clients_client_dot11k_neighbors, is_container='container', yang_name="dot11k-neighbors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=False)""",
        })

    self.__dot11k_neighbors = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dot11k_neighbors(self):
    self.__dot11k_neighbors = YANGDynClass(base=yc_dot11k_neighbors_openconfig_wifi_mac__ssids_ssid_clients_client_dot11k_neighbors, is_container='container', yang_name="dot11k-neighbors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=False)


  def _get_client_connection(self):
    """
    Getter method for client_connection, mapped from YANG variable /ssids/ssid/clients/client/client_connection (container)

    YANG Description: Connection-state and meta-data associated with the
Client.
    """
    return self.__client_connection
      
  def _set_client_connection(self, v, load=False):
    """
    Setter method for client_connection, mapped from YANG variable /ssids/ssid/clients/client/client_connection (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_client_connection is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_client_connection() directly.

    YANG Description: Connection-state and meta-data associated with the
Client.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_client_connection_openconfig_wifi_mac__ssids_ssid_clients_client_client_connection, is_container='container', yang_name="client-connection", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """client_connection must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_client_connection_openconfig_wifi_mac__ssids_ssid_clients_client_client_connection, is_container='container', yang_name="client-connection", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=False)""",
        })

    self.__client_connection = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_client_connection(self):
    self.__client_connection = YANGDynClass(base=yc_client_connection_openconfig_wifi_mac__ssids_ssid_clients_client_client_connection, is_container='container', yang_name="client-connection", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=False)

  mac = __builtin__.property(_get_mac)
  state = __builtin__.property(_get_state)
  client_rf = __builtin__.property(_get_client_rf)
  client_capabilities = __builtin__.property(_get_client_capabilities)
  dot11k_neighbors = __builtin__.property(_get_dot11k_neighbors)
  client_connection = __builtin__.property(_get_client_connection)


  _pyangbind_elements = OrderedDict([('mac', mac), ('state', state), ('client_rf', client_rf), ('client_capabilities', client_capabilities), ('dot11k_neighbors', dot11k_neighbors), ('client_connection', client_connection), ])


class yc_clients_openconfig_wifi_mac__ssids_ssid_clients(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-wifi-mac - based on the path /ssids/ssid/clients. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Top-level container for clients operational state data.
  """
  __slots__ = ('_path_helper', '_extmethods', '__client',)

  _yang_name = 'clients'
  _yang_namespace = 'http://openconfig.net/yang/wifi-mac'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__client = YANGDynClass(base=YANGListType("mac",yc_client_openconfig_wifi_mac__ssids_ssid_clients_client, yang_name="client", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='mac', extensions=None), is_container='list', yang_name="client", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='list', is_config=True)

    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 ['ssids', 'ssid', 'clients']

  def _get_client(self):
    """
    Getter method for client, mapped from YANG variable /ssids/ssid/clients/client (list)

    YANG Description: List of clients per BSS.
    """
    return self.__client
      
  def _set_client(self, v, load=False):
    """
    Setter method for client, mapped from YANG variable /ssids/ssid/clients/client (list)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_client is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_client() directly.

    YANG Description: List of clients per BSS.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGListType("mac",yc_client_openconfig_wifi_mac__ssids_ssid_clients_client, yang_name="client", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='mac', extensions=None), is_container='list', yang_name="client", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='list', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """client must be of a type compatible with list""",
          'defined-type': "list",
          'generated-type': """YANGDynClass(base=YANGListType("mac",yc_client_openconfig_wifi_mac__ssids_ssid_clients_client, yang_name="client", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='mac', extensions=None), is_container='list', yang_name="client", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='list', is_config=True)""",
        })

    self.__client = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_client(self):
    self.__client = YANGDynClass(base=YANGListType("mac",yc_client_openconfig_wifi_mac__ssids_ssid_clients_client, yang_name="client", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='mac', extensions=None), is_container='list', yang_name="client", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='list', is_config=True)

  client = __builtin__.property(_get_client, _set_client)


  _pyangbind_elements = OrderedDict([('client', client), ])


class yc_config_openconfig_wifi_mac__ssids_ssid_dot1x_timers_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-wifi-mac - based on the path /ssids/ssid/dot1x-timers/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Container for dot1x configuration elements.
  """
  __slots__ = ('_path_helper', '_extmethods', '__max_auth_failures','__blacklist_time',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi-mac'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__max_auth_failures = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="max-auth-failures", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=True)
    self.__blacklist_time = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="blacklist-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint16', is_config=True)

    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 ['ssids', 'ssid', 'dot1x-timers', 'config']

  def _get_max_auth_failures(self):
    """
    Getter method for max_auth_failures, mapped from YANG variable /ssids/ssid/dot1x_timers/config/max_auth_failures (uint8)

    YANG Description: Number of consecutive authentication failures,
via RADIUS Access-Reject, before Station
is blacklisted.
    """
    return self.__max_auth_failures
      
  def _set_max_auth_failures(self, v, load=False):
    """
    Setter method for max_auth_failures, mapped from YANG variable /ssids/ssid/dot1x_timers/config/max_auth_failures (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_max_auth_failures is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_max_auth_failures() directly.

    YANG Description: Number of consecutive authentication failures,
via RADIUS Access-Reject, before Station
is blacklisted.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="max-auth-failures", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """max_auth_failures must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="max-auth-failures", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=True)""",
        })

    self.__max_auth_failures = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_max_auth_failures(self):
    self.__max_auth_failures = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="max-auth-failures", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=True)


  def _get_blacklist_time(self):
    """
    Getter method for blacklist_time, mapped from YANG variable /ssids/ssid/dot1x_timers/config/blacklist_time (uint16)

    YANG Description: Length of time, in seconds, a Station will be
blacklisted as a result of max-auth-failures.
    """
    return self.__blacklist_time
      
  def _set_blacklist_time(self, v, load=False):
    """
    Setter method for blacklist_time, mapped from YANG variable /ssids/ssid/dot1x_timers/config/blacklist_time (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_blacklist_time is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_blacklist_time() directly.

    YANG Description: Length of time, in seconds, a Station will be
blacklisted as a result of max-auth-failures.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="blacklist-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint16', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """blacklist_time must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="blacklist-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint16', is_config=True)""",
        })

    self.__blacklist_time = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_blacklist_time(self):
    self.__blacklist_time = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="blacklist-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint16', is_config=True)

  max_auth_failures = __builtin__.property(_get_max_auth_failures, _set_max_auth_failures)
  blacklist_time = __builtin__.property(_get_blacklist_time, _set_blacklist_time)


  _pyangbind_elements = OrderedDict([('max_auth_failures', max_auth_failures), ('blacklist_time', blacklist_time), ])


class yc_state_openconfig_wifi_mac__ssids_ssid_dot1x_timers_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-wifi-mac - based on the path /ssids/ssid/dot1x-timers/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Container for dot1x state elements.
  """
  __slots__ = ('_path_helper', '_extmethods', '__max_auth_failures','__blacklist_time',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi-mac'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__max_auth_failures = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="max-auth-failures", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=False)
    self.__blacklist_time = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="blacklist-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint16', 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 ['ssids', 'ssid', 'dot1x-timers', 'state']

  def _get_max_auth_failures(self):
    """
    Getter method for max_auth_failures, mapped from YANG variable /ssids/ssid/dot1x_timers/state/max_auth_failures (uint8)

    YANG Description: Number of consecutive authentication failures,
via RADIUS Access-Reject, before Station
is blacklisted.
    """
    return self.__max_auth_failures
      
  def _set_max_auth_failures(self, v, load=False):
    """
    Setter method for max_auth_failures, mapped from YANG variable /ssids/ssid/dot1x_timers/state/max_auth_failures (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_max_auth_failures is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_max_auth_failures() directly.

    YANG Description: Number of consecutive authentication failures,
via RADIUS Access-Reject, before Station
is blacklisted.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="max-auth-failures", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """max_auth_failures must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="max-auth-failures", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=False)""",
        })

    self.__max_auth_failures = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_max_auth_failures(self):
    self.__max_auth_failures = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="max-auth-failures", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint8', is_config=False)


  def _get_blacklist_time(self):
    """
    Getter method for blacklist_time, mapped from YANG variable /ssids/ssid/dot1x_timers/state/blacklist_time (uint16)

    YANG Description: Length of time, in seconds, a Station will be
blacklisted as a result of max-auth-failures.
    """
    return self.__blacklist_time
      
  def _set_blacklist_time(self, v, load=False):
    """
    Setter method for blacklist_time, mapped from YANG variable /ssids/ssid/dot1x_timers/state/blacklist_time (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_blacklist_time is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_blacklist_time() directly.

    YANG Description: Length of time, in seconds, a Station will be
blacklisted as a result of max-auth-failures.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="blacklist-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint16', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """blacklist_time must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="blacklist-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint16', is_config=False)""",
        })

    self.__blacklist_time = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_blacklist_time(self):
    self.__blacklist_time = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="blacklist-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='uint16', is_config=False)

  max_auth_failures = __builtin__.property(_get_max_auth_failures)
  blacklist_time = __builtin__.property(_get_blacklist_time)


  _pyangbind_elements = OrderedDict([('max_auth_failures', max_auth_failures), ('blacklist_time', blacklist_time), ])


class yc_dot1x_timers_openconfig_wifi_mac__ssids_ssid_dot1x_timers(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-wifi-mac - based on the path /ssids/ssid/dot1x-timers. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Top-level container for dot1x configuration
and operational state data.
  """
  __slots__ = ('_path_helper', '_extmethods', '__config','__state',)

  _yang_name = 'dot1x-timers'
  _yang_namespace = 'http://openconfig.net/yang/wifi-mac'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__config = YANGDynClass(base=yc_config_openconfig_wifi_mac__ssids_ssid_dot1x_timers_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_wifi_mac__ssids_ssid_dot1x_timers_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/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)

    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 ['ssids', 'ssid', 'dot1x-timers']

  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /ssids/ssid/dot1x_timers/config (container)

    YANG Description: Container for dot1x configuration elements.
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /ssids/ssid/dot1x_timers/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Container for dot1x configuration elements.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_wifi_mac__ssids_ssid_dot1x_timers_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_wifi_mac__ssids_ssid_dot1x_timers_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_wifi_mac__ssids_ssid_dot1x_timers_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /ssids/ssid/dot1x_timers/state (container)

    YANG Description: Container for dot1x state elements.
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /ssids/ssid/dot1x_timers/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: Container for dot1x state elements.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_wifi_mac__ssids_ssid_dot1x_timers_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/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_wifi_mac__ssids_ssid_dot1x_timers_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/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_wifi_mac__ssids_ssid_dot1x_timers_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/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)

  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)


  _pyangbind_elements = OrderedDict([('config', config), ('state', state), ])


class yc_config_openconfig_wifi_mac__ssids_ssid_band_steering_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-wifi-mac - based on the path /ssids/ssid/band-steering/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Container for band-steering configuration elements.
  """
  __slots__ = ('_path_helper', '_extmethods', '__band_steering','__steering_rssi',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi-mac'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__band_steering = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="band-steering", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)
    self.__steering_rssi = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), is_leaf=True, yang_name="steering-rssi", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='int8', is_config=True)

    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 ['ssids', 'ssid', 'band-steering', 'config']

  def _get_band_steering(self):
    """
    Getter method for band_steering, mapped from YANG variable /ssids/ssid/band_steering/config/band_steering (boolean)

    YANG Description: Enable/disable band-steering.
    """
    return self.__band_steering
      
  def _set_band_steering(self, v, load=False):
    """
    Setter method for band_steering, mapped from YANG variable /ssids/ssid/band_steering/config/band_steering (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_band_steering is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_band_steering() directly.

    YANG Description: Enable/disable band-steering.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="band-steering", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """band_steering must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="band-steering", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)""",
        })

    self.__band_steering = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_band_steering(self):
    self.__band_steering = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="band-steering", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=True)


  def _get_steering_rssi(self):
    """
    Getter method for steering_rssi, mapped from YANG variable /ssids/ssid/band_steering/config/steering_rssi (int8)

    YANG Description: Minimum RSSI a dual-band Station's Probe Request
must be heard at on a 5GHz radio, in order for
band-steering to withhold 2.4GHz Probe Responses.
    """
    return self.__steering_rssi
      
  def _set_steering_rssi(self, v, load=False):
    """
    Setter method for steering_rssi, mapped from YANG variable /ssids/ssid/band_steering/config/steering_rssi (int8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_steering_rssi is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_steering_rssi() directly.

    YANG Description: Minimum RSSI a dual-band Station's Probe Request
must be heard at on a 5GHz radio, in order for
band-steering to withhold 2.4GHz Probe Responses.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), is_leaf=True, yang_name="steering-rssi", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='int8', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """steering_rssi must be of a type compatible with int8""",
          'defined-type': "int8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), is_leaf=True, yang_name="steering-rssi", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='int8', is_config=True)""",
        })

    self.__steering_rssi = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_steering_rssi(self):
    self.__steering_rssi = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), is_leaf=True, yang_name="steering-rssi", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='int8', is_config=True)

  band_steering = __builtin__.property(_get_band_steering, _set_band_steering)
  steering_rssi = __builtin__.property(_get_steering_rssi, _set_steering_rssi)


  _pyangbind_elements = OrderedDict([('band_steering', band_steering), ('steering_rssi', steering_rssi), ])


class yc_state_openconfig_wifi_mac__ssids_ssid_band_steering_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-wifi-mac - based on the path /ssids/ssid/band-steering/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Container for band-steering state elements.
  """
  __slots__ = ('_path_helper', '_extmethods', '__band_steering','__steering_rssi',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi-mac'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__band_steering = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="band-steering", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)
    self.__steering_rssi = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), is_leaf=True, yang_name="steering-rssi", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='int8', 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 ['ssids', 'ssid', 'band-steering', 'state']

  def _get_band_steering(self):
    """
    Getter method for band_steering, mapped from YANG variable /ssids/ssid/band_steering/state/band_steering (boolean)

    YANG Description: Enable/disable band-steering.
    """
    return self.__band_steering
      
  def _set_band_steering(self, v, load=False):
    """
    Setter method for band_steering, mapped from YANG variable /ssids/ssid/band_steering/state/band_steering (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_band_steering is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_band_steering() directly.

    YANG Description: Enable/disable band-steering.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="band-steering", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """band_steering must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="band-steering", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)""",
        })

    self.__band_steering = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_band_steering(self):
    self.__band_steering = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="band-steering", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='boolean', is_config=False)


  def _get_steering_rssi(self):
    """
    Getter method for steering_rssi, mapped from YANG variable /ssids/ssid/band_steering/state/steering_rssi (int8)

    YANG Description: Minimum RSSI a dual-band Station's Probe Request
must be heard at on a 5GHz radio, in order for
band-steering to withhold 2.4GHz Probe Responses.
    """
    return self.__steering_rssi
      
  def _set_steering_rssi(self, v, load=False):
    """
    Setter method for steering_rssi, mapped from YANG variable /ssids/ssid/band_steering/state/steering_rssi (int8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_steering_rssi is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_steering_rssi() directly.

    YANG Description: Minimum RSSI a dual-band Station's Probe Request
must be heard at on a 5GHz radio, in order for
band-steering to withhold 2.4GHz Probe Responses.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), is_leaf=True, yang_name="steering-rssi", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='int8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """steering_rssi must be of a type compatible with int8""",
          'defined-type': "int8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), is_leaf=True, yang_name="steering-rssi", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='int8', is_config=False)""",
        })

    self.__steering_rssi = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_steering_rssi(self):
    self.__steering_rssi = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), is_leaf=True, yang_name="steering-rssi", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='int8', is_config=False)

  band_steering = __builtin__.property(_get_band_steering)
  steering_rssi = __builtin__.property(_get_steering_rssi)


  _pyangbind_elements = OrderedDict([('band_steering', band_steering), ('steering_rssi', steering_rssi), ])


class yc_band_steering_openconfig_wifi_mac__ssids_ssid_band_steering(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-wifi-mac - based on the path /ssids/ssid/band-steering. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Top-level container for band-steering configuration
and operational state data.
  """
  __slots__ = ('_path_helper', '_extmethods', '__config','__state',)

  _yang_name = 'band-steering'
  _yang_namespace = 'http://openconfig.net/yang/wifi-mac'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__config = YANGDynClass(base=yc_config_openconfig_wifi_mac__ssids_ssid_band_steering_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_wifi_mac__ssids_ssid_band_steering_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/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)

    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 ['ssids', 'ssid', 'band-steering']

  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /ssids/ssid/band_steering/config (container)

    YANG Description: Container for band-steering configuration elements.
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /ssids/ssid/band_steering/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Container for band-steering configuration elements.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_wifi_mac__ssids_ssid_band_steering_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_wifi_mac__ssids_ssid_band_steering_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_wifi_mac__ssids_ssid_band_steering_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /ssids/ssid/band_steering/state (container)

    YANG Description: Container for band-steering state elements.
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /ssids/ssid/band_steering/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: Container for band-steering state elements.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_wifi_mac__ssids_ssid_band_steering_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/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_wifi_mac__ssids_ssid_band_steering_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/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_wifi_mac__ssids_ssid_band_steering_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/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)

  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)


  _pyangbind_elements = OrderedDict([('config', config), ('state', state), ])


class yc_ssid_openconfig_wifi_mac__ssids_ssid(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-wifi-mac - based on the path /ssids/ssid. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: The list of named SSIDs on the APs.
  """
  __slots__ = ('_path_helper', '_extmethods', '__name','__config','__state','__bssids','__wmm','__dot11r','__dot11v','__clients','__dot1x_timers','__band_steering',)

  _yang_name = 'ssid'
  _yang_namespace = 'http://openconfig.net/yang/wifi-mac'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='leafref', is_config=True)
    self.__config = YANGDynClass(base=yc_config_openconfig_wifi_mac__ssids_ssid_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_wifi_mac__ssids_ssid_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/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)
    self.__bssids = YANGDynClass(base=yc_bssids_openconfig_wifi_mac__ssids_ssid_bssids, is_container='container', yang_name="bssids", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)
    self.__wmm = YANGDynClass(base=yc_wmm_openconfig_wifi_mac__ssids_ssid_wmm, is_container='container', yang_name="wmm", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)
    self.__dot11r = YANGDynClass(base=yc_dot11r_openconfig_wifi_mac__ssids_ssid_dot11r, is_container='container', yang_name="dot11r", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)
    self.__dot11v = YANGDynClass(base=yc_dot11v_openconfig_wifi_mac__ssids_ssid_dot11v, is_container='container', yang_name="dot11v", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)
    self.__clients = YANGDynClass(base=yc_clients_openconfig_wifi_mac__ssids_ssid_clients, is_container='container', yang_name="clients", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)
    self.__dot1x_timers = YANGDynClass(base=yc_dot1x_timers_openconfig_wifi_mac__ssids_ssid_dot1x_timers, is_container='container', yang_name="dot1x-timers", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)
    self.__band_steering = YANGDynClass(base=yc_band_steering_openconfig_wifi_mac__ssids_ssid_band_steering, is_container='container', yang_name="band-steering", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)

    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 ['ssids', 'ssid']

  def _get_name(self):
    """
    Getter method for name, mapped from YANG variable /ssids/ssid/name (leafref)

    YANG Description: References the configured name of the SSID.
    """
    return self.__name
      
  def _set_name(self, v, load=False):
    """
    Setter method for name, mapped from YANG variable /ssids/ssid/name (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_name is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_name() directly.

    YANG Description: References the configured name of the SSID.
    """
    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="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='leafref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """name must be of a type compatible with leafref""",
          'defined-type': "leafref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='leafref', is_config=True)""",
        })

    self.__name = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_name(self):
    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='leafref', is_config=True)


  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /ssids/ssid/config (container)

    YANG Description: Configurable items at the global, SSID level
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /ssids/ssid/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Configurable items at the global, SSID level
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_wifi_mac__ssids_ssid_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_wifi_mac__ssids_ssid_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_wifi_mac__ssids_ssid_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /ssids/ssid/state (container)

    YANG Description: Operational state data at the SSID level
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /ssids/ssid/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: Operational state data at the SSID level
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_wifi_mac__ssids_ssid_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/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_wifi_mac__ssids_ssid_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/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_wifi_mac__ssids_ssid_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/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)


  def _get_bssids(self):
    """
    Getter method for bssids, mapped from YANG variable /ssids/ssid/bssids (container)

    YANG Description: Top-level container for BSSIDs operational state data.
    """
    return self.__bssids
      
  def _set_bssids(self, v, load=False):
    """
    Setter method for bssids, mapped from YANG variable /ssids/ssid/bssids (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_bssids is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_bssids() directly.

    YANG Description: Top-level container for BSSIDs operational state data.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_bssids_openconfig_wifi_mac__ssids_ssid_bssids, is_container='container', yang_name="bssids", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """bssids must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_bssids_openconfig_wifi_mac__ssids_ssid_bssids, is_container='container', yang_name="bssids", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)""",
        })

    self.__bssids = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_bssids(self):
    self.__bssids = YANGDynClass(base=yc_bssids_openconfig_wifi_mac__ssids_ssid_bssids, is_container='container', yang_name="bssids", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)


  def _get_wmm(self):
    """
    Getter method for wmm, mapped from YANG variable /ssids/ssid/wmm (container)

    YANG Description: Top-level container for WMM configuration and
state container.
    """
    return self.__wmm
      
  def _set_wmm(self, v, load=False):
    """
    Setter method for wmm, mapped from YANG variable /ssids/ssid/wmm (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_wmm is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_wmm() directly.

    YANG Description: Top-level container for WMM configuration and
state container.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_wmm_openconfig_wifi_mac__ssids_ssid_wmm, is_container='container', yang_name="wmm", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """wmm must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_wmm_openconfig_wifi_mac__ssids_ssid_wmm, is_container='container', yang_name="wmm", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)""",
        })

    self.__wmm = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_wmm(self):
    self.__wmm = YANGDynClass(base=yc_wmm_openconfig_wifi_mac__ssids_ssid_wmm, is_container='container', yang_name="wmm", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)


  def _get_dot11r(self):
    """
    Getter method for dot11r, mapped from YANG variable /ssids/ssid/dot11r (container)

    YANG Description: Top-level container for 802.11r configuration and
state container.
    """
    return self.__dot11r
      
  def _set_dot11r(self, v, load=False):
    """
    Setter method for dot11r, mapped from YANG variable /ssids/ssid/dot11r (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dot11r is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dot11r() directly.

    YANG Description: Top-level container for 802.11r configuration and
state container.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_dot11r_openconfig_wifi_mac__ssids_ssid_dot11r, is_container='container', yang_name="dot11r", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dot11r must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_dot11r_openconfig_wifi_mac__ssids_ssid_dot11r, is_container='container', yang_name="dot11r", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)""",
        })

    self.__dot11r = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dot11r(self):
    self.__dot11r = YANGDynClass(base=yc_dot11r_openconfig_wifi_mac__ssids_ssid_dot11r, is_container='container', yang_name="dot11r", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)


  def _get_dot11v(self):
    """
    Getter method for dot11v, mapped from YANG variable /ssids/ssid/dot11v (container)

    YANG Description: Top-level container for 802.11v configuration and
operational state data.
    """
    return self.__dot11v
      
  def _set_dot11v(self, v, load=False):
    """
    Setter method for dot11v, mapped from YANG variable /ssids/ssid/dot11v (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dot11v is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dot11v() directly.

    YANG Description: Top-level container for 802.11v configuration and
operational state data.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_dot11v_openconfig_wifi_mac__ssids_ssid_dot11v, is_container='container', yang_name="dot11v", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dot11v must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_dot11v_openconfig_wifi_mac__ssids_ssid_dot11v, is_container='container', yang_name="dot11v", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)""",
        })

    self.__dot11v = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dot11v(self):
    self.__dot11v = YANGDynClass(base=yc_dot11v_openconfig_wifi_mac__ssids_ssid_dot11v, is_container='container', yang_name="dot11v", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)


  def _get_clients(self):
    """
    Getter method for clients, mapped from YANG variable /ssids/ssid/clients (container)

    YANG Description: Top-level container for clients operational state data.
    """
    return self.__clients
      
  def _set_clients(self, v, load=False):
    """
    Setter method for clients, mapped from YANG variable /ssids/ssid/clients (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_clients is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_clients() directly.

    YANG Description: Top-level container for clients operational state data.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_clients_openconfig_wifi_mac__ssids_ssid_clients, is_container='container', yang_name="clients", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """clients must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_clients_openconfig_wifi_mac__ssids_ssid_clients, is_container='container', yang_name="clients", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)""",
        })

    self.__clients = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_clients(self):
    self.__clients = YANGDynClass(base=yc_clients_openconfig_wifi_mac__ssids_ssid_clients, is_container='container', yang_name="clients", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)


  def _get_dot1x_timers(self):
    """
    Getter method for dot1x_timers, mapped from YANG variable /ssids/ssid/dot1x_timers (container)

    YANG Description: Top-level container for dot1x configuration
and operational state data.
    """
    return self.__dot1x_timers
      
  def _set_dot1x_timers(self, v, load=False):
    """
    Setter method for dot1x_timers, mapped from YANG variable /ssids/ssid/dot1x_timers (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dot1x_timers is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dot1x_timers() directly.

    YANG Description: Top-level container for dot1x configuration
and operational state data.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_dot1x_timers_openconfig_wifi_mac__ssids_ssid_dot1x_timers, is_container='container', yang_name="dot1x-timers", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dot1x_timers must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_dot1x_timers_openconfig_wifi_mac__ssids_ssid_dot1x_timers, is_container='container', yang_name="dot1x-timers", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)""",
        })

    self.__dot1x_timers = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dot1x_timers(self):
    self.__dot1x_timers = YANGDynClass(base=yc_dot1x_timers_openconfig_wifi_mac__ssids_ssid_dot1x_timers, is_container='container', yang_name="dot1x-timers", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)


  def _get_band_steering(self):
    """
    Getter method for band_steering, mapped from YANG variable /ssids/ssid/band_steering (container)

    YANG Description: Top-level container for band-steering configuration
and operational state data.
    """
    return self.__band_steering
      
  def _set_band_steering(self, v, load=False):
    """
    Setter method for band_steering, mapped from YANG variable /ssids/ssid/band_steering (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_band_steering is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_band_steering() directly.

    YANG Description: Top-level container for band-steering configuration
and operational state data.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_band_steering_openconfig_wifi_mac__ssids_ssid_band_steering, is_container='container', yang_name="band-steering", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """band_steering must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_band_steering_openconfig_wifi_mac__ssids_ssid_band_steering, is_container='container', yang_name="band-steering", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)""",
        })

    self.__band_steering = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_band_steering(self):
    self.__band_steering = YANGDynClass(base=yc_band_steering_openconfig_wifi_mac__ssids_ssid_band_steering, is_container='container', yang_name="band-steering", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)

  name = __builtin__.property(_get_name, _set_name)
  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)
  bssids = __builtin__.property(_get_bssids, _set_bssids)
  wmm = __builtin__.property(_get_wmm, _set_wmm)
  dot11r = __builtin__.property(_get_dot11r, _set_dot11r)
  dot11v = __builtin__.property(_get_dot11v, _set_dot11v)
  clients = __builtin__.property(_get_clients, _set_clients)
  dot1x_timers = __builtin__.property(_get_dot1x_timers, _set_dot1x_timers)
  band_steering = __builtin__.property(_get_band_steering, _set_band_steering)


  _pyangbind_elements = OrderedDict([('name', name), ('config', config), ('state', state), ('bssids', bssids), ('wmm', wmm), ('dot11r', dot11r), ('dot11v', dot11v), ('clients', clients), ('dot1x_timers', dot1x_timers), ('band_steering', band_steering), ])


class yc_ssids_openconfig_wifi_mac__ssids(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-wifi-mac - based on the path /ssids. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Top level container for SSIDs, including configuration
and state data.
  """
  __slots__ = ('_path_helper', '_extmethods', '__ssid',)

  _yang_name = 'ssids'
  _yang_namespace = 'http://openconfig.net/yang/wifi-mac'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__ssid = YANGDynClass(base=YANGListType("name",yc_ssid_openconfig_wifi_mac__ssids_ssid, yang_name="ssid", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="ssid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='list', is_config=True)

    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 ['ssids']

  def _get_ssid(self):
    """
    Getter method for ssid, mapped from YANG variable /ssids/ssid (list)

    YANG Description: The list of named SSIDs on the APs.
    """
    return self.__ssid
      
  def _set_ssid(self, v, load=False):
    """
    Setter method for ssid, mapped from YANG variable /ssids/ssid (list)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ssid is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ssid() directly.

    YANG Description: The list of named SSIDs on the APs.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGListType("name",yc_ssid_openconfig_wifi_mac__ssids_ssid, yang_name="ssid", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="ssid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='list', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ssid must be of a type compatible with list""",
          'defined-type': "list",
          'generated-type': """YANGDynClass(base=YANGListType("name",yc_ssid_openconfig_wifi_mac__ssids_ssid, yang_name="ssid", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="ssid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='list', is_config=True)""",
        })

    self.__ssid = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ssid(self):
    self.__ssid = YANGDynClass(base=YANGListType("name",yc_ssid_openconfig_wifi_mac__ssids_ssid, yang_name="ssid", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="ssid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='list', is_config=True)

  ssid = __builtin__.property(_get_ssid, _set_ssid)


  _pyangbind_elements = OrderedDict([('ssid', ssid), ])


class openconfig_wifi_mac(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-wifi-mac - based on the path /openconfig-wifi-mac. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Model for managing MAC layer configuration of Radio interfaces.
  """
  __slots__ = ('_path_helper', '_extmethods', '__ssids',)

  _yang_name = 'openconfig-wifi-mac'
  _yang_namespace = 'http://openconfig.net/yang/wifi-mac'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__ssids = YANGDynClass(base=yc_ssids_openconfig_wifi_mac__ssids, is_container='container', yang_name="ssids", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)

    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 []

  def _get_ssids(self):
    """
    Getter method for ssids, mapped from YANG variable /ssids (container)

    YANG Description: Top level container for SSIDs, including configuration
and state data.
    """
    return self.__ssids
      
  def _set_ssids(self, v, load=False):
    """
    Setter method for ssids, mapped from YANG variable /ssids (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ssids is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ssids() directly.

    YANG Description: Top level container for SSIDs, including configuration
and state data.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_ssids_openconfig_wifi_mac__ssids, is_container='container', yang_name="ssids", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ssids must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_ssids_openconfig_wifi_mac__ssids, is_container='container', yang_name="ssids", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)""",
        })

    self.__ssids = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ssids(self):
    self.__ssids = YANGDynClass(base=yc_ssids_openconfig_wifi_mac__ssids, is_container='container', yang_name="ssids", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-mac', defining_module='openconfig-wifi-mac', yang_type='container', is_config=True)

  ssids = __builtin__.property(_get_ssids, _set_ssids)


  _pyangbind_elements = OrderedDict([('ssids', ssids), ])


class openconfig_ap_interfaces(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-ap-interfaces - based on the path /openconfig-ap-interfaces. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: This module defines the configuration and state data for
non-radio interfaces on WiFi Access Points.
  """
  _pyangbind_elements = {}

  

class yc_config_openconfig_wifi_phy__radios_radio_config(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-wifi-phy - based on the path /radios/radio/config. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Configurable items at the global, radio interface
level.
  """
  __slots__ = ('_path_helper', '_extmethods', '__id','__operating_frequency','__enabled','__transmit_power','__transmit_eirp','__channel','__channel_width','__bss_coloring','__bss_color_id','__dca','__allowed_channels','__dtp','__dtp_min','__dtp_max','__antenna_gain','__scanning','__scanning_interval','__scanning_dwell_time','__scanning_defer_clients','__scanning_defer_traffic',)

  _yang_name = 'config'
  _yang_namespace = 'http://openconfig.net/yang/wifi-phy'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__id = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint8', is_config=True)
    self.__operating_frequency = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},), is_leaf=True, yang_name="operating-frequency", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='identityref', is_config=True)
    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='boolean', is_config=True)
    self.__transmit_power = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8)(9), is_leaf=True, yang_name="transmit-power", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='int8', is_config=True)
    self.__transmit_eirp = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="transmit-eirp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint8', is_config=True)
    self.__channel = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..233']}), is_leaf=True, yang_name="channel", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint8', is_config=True)
    self.__channel_width = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)(20), is_leaf=True, yang_name="channel-width", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint8', is_config=True)
    self.__bss_coloring = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="bss-coloring", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='boolean', is_config=True)
    self.__bss_color_id = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..63']}), is_leaf=True, yang_name="bss-color-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint8', is_config=True)
    self.__dca = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="dca", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='boolean', is_config=True)
    self.__allowed_channels = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..14', '17', '21', '25', '29', '33', '36', '37', '40', '41', '44', '45', '48', '49', '52', '53', '56', '57', '60', '61', '64', '65', '69', '73', '77', '81', '85', '89', '93', '97', '100', '101', '104', '105', '108', '109', '112', '113', '116', '117', '120', '121', '124', '125', '128', '129', '132', '133', '136', '137', '140', '141', '144', '145', '149', '153', '157', '161', '165', '169', '173', '177', '181', '185', '189', '193', '197', '201', '205', '209', '213', '217', '221', '225', '229', '233']})), is_leaf=False, yang_name="allowed-channels", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='oc-wifi-types:channels-type', is_config=True)
    self.__dtp = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="dtp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='boolean', is_config=True)
    self.__dtp_min = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8)(3), is_leaf=True, yang_name="dtp-min", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='int8', is_config=True)
    self.__dtp_max = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8)(15), is_leaf=True, yang_name="dtp-max", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='int8', is_config=True)
    self.__antenna_gain = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), is_leaf=True, yang_name="antenna-gain", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='int8', is_config=True)
    self.__scanning = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="scanning", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='boolean', is_config=True)
    self.__scanning_interval = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="scanning-interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint8', is_config=True)
    self.__scanning_dwell_time = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="scanning-dwell-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint16', is_config=True)
    self.__scanning_defer_clients = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="scanning-defer-clients", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint8', is_config=True)
    self.__scanning_defer_traffic = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="scanning-defer-traffic", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='boolean', is_config=True)

    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 ['radios', 'radio', 'config']

  def _get_id(self):
    """
    Getter method for id, mapped from YANG variable /radios/radio/config/id (uint8)

    YANG Description: Unique ID of the radio. Each ID has a corresponding
operating-frequency.
    """
    return self.__id
      
  def _set_id(self, v, load=False):
    """
    Setter method for id, mapped from YANG variable /radios/radio/config/id (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_id is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_id() directly.

    YANG Description: Unique ID of the radio. Each ID has a corresponding
operating-frequency.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint8', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """id must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint8', is_config=True)""",
        })

    self.__id = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_id(self):
    self.__id = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint8', is_config=True)


  def _get_operating_frequency(self):
    """
    Getter method for operating_frequency, mapped from YANG variable /radios/radio/config/operating_frequency (identityref)

    YANG Description: Operating frequency of this radio.
    """
    return self.__operating_frequency
      
  def _set_operating_frequency(self, v, load=False):
    """
    Setter method for operating_frequency, mapped from YANG variable /radios/radio/config/operating_frequency (identityref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_operating_frequency is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_operating_frequency() directly.

    YANG Description: Operating frequency of this radio.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},), is_leaf=True, yang_name="operating-frequency", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='identityref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """operating_frequency must be of a type compatible with identityref""",
          'defined-type': "openconfig-wifi-phy:identityref",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},), is_leaf=True, yang_name="operating-frequency", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='identityref', is_config=True)""",
        })

    self.__operating_frequency = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_operating_frequency(self):
    self.__operating_frequency = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},), is_leaf=True, yang_name="operating-frequency", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='identityref', is_config=True)


  def _get_enabled(self):
    """
    Getter method for enabled, mapped from YANG variable /radios/radio/config/enabled (boolean)

    YANG Description: The configured state (enabled/disabled) of this radio
interface.
    """
    return self.__enabled
      
  def _set_enabled(self, v, load=False):
    """
    Setter method for enabled, mapped from YANG variable /radios/radio/config/enabled (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_enabled is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_enabled() directly.

    YANG Description: The configured state (enabled/disabled) of this radio
interface.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """enabled must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='boolean', is_config=True)""",
        })

    self.__enabled = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_enabled(self):
    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='boolean', is_config=True)


  def _get_transmit_power(self):
    """
    Getter method for transmit_power, mapped from YANG variable /radios/radio/config/transmit_power (int8)

    YANG Description: Transmit power of the radio, in dBm.
    """
    return self.__transmit_power
      
  def _set_transmit_power(self, v, load=False):
    """
    Setter method for transmit_power, mapped from YANG variable /radios/radio/config/transmit_power (int8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_transmit_power is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_transmit_power() directly.

    YANG Description: Transmit power of the radio, in dBm.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8)(9), is_leaf=True, yang_name="transmit-power", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='int8', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """transmit_power must be of a type compatible with int8""",
          'defined-type': "int8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8)(9), is_leaf=True, yang_name="transmit-power", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='int8', is_config=True)""",
        })

    self.__transmit_power = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_transmit_power(self):
    self.__transmit_power = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8)(9), is_leaf=True, yang_name="transmit-power", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='int8', is_config=True)


  def _get_transmit_eirp(self):
    """
    Getter method for transmit_eirp, mapped from YANG variable /radios/radio/config/transmit_eirp (uint8)

    YANG Description: Transmit eirp of the radio + antenna, in dBm.
    """
    return self.__transmit_eirp
      
  def _set_transmit_eirp(self, v, load=False):
    """
    Setter method for transmit_eirp, mapped from YANG variable /radios/radio/config/transmit_eirp (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_transmit_eirp is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_transmit_eirp() directly.

    YANG Description: Transmit eirp of the radio + antenna, in dBm.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="transmit-eirp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint8', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """transmit_eirp must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="transmit-eirp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint8', is_config=True)""",
        })

    self.__transmit_eirp = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_transmit_eirp(self):
    self.__transmit_eirp = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="transmit-eirp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint8', is_config=True)


  def _get_channel(self):
    """
    Getter method for channel, mapped from YANG variable /radios/radio/config/channel (uint8)

    YANG Description: Operating channel of this radio. If using channel-bonding
this will represent the Primary 20MHz channel of the
40,80,160MHz channel.
    """
    return self.__channel
      
  def _set_channel(self, v, load=False):
    """
    Setter method for channel, mapped from YANG variable /radios/radio/config/channel (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_channel is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_channel() directly.

    YANG Description: Operating channel of this radio. If using channel-bonding
this will represent the Primary 20MHz channel of the
40,80,160MHz channel.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..233']}), is_leaf=True, yang_name="channel", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint8', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """channel must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..233']}), is_leaf=True, yang_name="channel", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint8', is_config=True)""",
        })

    self.__channel = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_channel(self):
    self.__channel = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..233']}), is_leaf=True, yang_name="channel", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint8', is_config=True)


  def _get_channel_width(self):
    """
    Getter method for channel_width, mapped from YANG variable /radios/radio/config/channel_width (uint8)

    YANG Description: Operating channel-width of this radio.
    """
    return self.__channel_width
      
  def _set_channel_width(self, v, load=False):
    """
    Setter method for channel_width, mapped from YANG variable /radios/radio/config/channel_width (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_channel_width is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_channel_width() directly.

    YANG Description: Operating channel-width of this radio.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)(20), is_leaf=True, yang_name="channel-width", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint8', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """channel_width must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)(20), is_leaf=True, yang_name="channel-width", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint8', is_config=True)""",
        })

    self.__channel_width = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_channel_width(self):
    self.__channel_width = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)(20), is_leaf=True, yang_name="channel-width", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint8', is_config=True)


  def _get_bss_coloring(self):
    """
    Getter method for bss_coloring, mapped from YANG variable /radios/radio/config/bss_coloring (boolean)

    YANG Description: Utilize BSS coloring on this radio.
    """
    return self.__bss_coloring
      
  def _set_bss_coloring(self, v, load=False):
    """
    Setter method for bss_coloring, mapped from YANG variable /radios/radio/config/bss_coloring (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_bss_coloring is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_bss_coloring() directly.

    YANG Description: Utilize BSS coloring on this radio.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="bss-coloring", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """bss_coloring must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="bss-coloring", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='boolean', is_config=True)""",
        })

    self.__bss_coloring = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_bss_coloring(self):
    self.__bss_coloring = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="bss-coloring", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='boolean', is_config=True)


  def _get_bss_color_id(self):
    """
    Getter method for bss_color_id, mapped from YANG variable /radios/radio/config/bss_color_id (uint8)

    YANG Description: Numerical identifier of the BSS.
    """
    return self.__bss_color_id
      
  def _set_bss_color_id(self, v, load=False):
    """
    Setter method for bss_color_id, mapped from YANG variable /radios/radio/config/bss_color_id (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_bss_color_id is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_bss_color_id() directly.

    YANG Description: Numerical identifier of the BSS.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..63']}), is_leaf=True, yang_name="bss-color-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint8', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """bss_color_id must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..63']}), is_leaf=True, yang_name="bss-color-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint8', is_config=True)""",
        })

    self.__bss_color_id = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_bss_color_id(self):
    self.__bss_color_id = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..63']}), is_leaf=True, yang_name="bss-color-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint8', is_config=True)


  def _get_dca(self):
    """
    Getter method for dca, mapped from YANG variable /radios/radio/config/dca (boolean)

    YANG Description: Utilize Dynamic Channel Assignment on this Radio.
    """
    return self.__dca
      
  def _set_dca(self, v, load=False):
    """
    Setter method for dca, mapped from YANG variable /radios/radio/config/dca (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dca is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dca() directly.

    YANG Description: Utilize Dynamic Channel Assignment on this Radio.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="dca", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dca must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="dca", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='boolean', is_config=True)""",
        })

    self.__dca = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dca(self):
    self.__dca = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="dca", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='boolean', is_config=True)


  def _get_allowed_channels(self):
    """
    Getter method for allowed_channels, mapped from YANG variable /radios/radio/config/allowed_channels (oc-wifi-types:channels-type)

    YANG Description: Allowed channel list for this Radio to utilize.
    """
    return self.__allowed_channels
      
  def _set_allowed_channels(self, v, load=False):
    """
    Setter method for allowed_channels, mapped from YANG variable /radios/radio/config/allowed_channels (oc-wifi-types:channels-type)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_allowed_channels is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_allowed_channels() directly.

    YANG Description: Allowed channel list for this Radio to utilize.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..14', '17', '21', '25', '29', '33', '36', '37', '40', '41', '44', '45', '48', '49', '52', '53', '56', '57', '60', '61', '64', '65', '69', '73', '77', '81', '85', '89', '93', '97', '100', '101', '104', '105', '108', '109', '112', '113', '116', '117', '120', '121', '124', '125', '128', '129', '132', '133', '136', '137', '140', '141', '144', '145', '149', '153', '157', '161', '165', '169', '173', '177', '181', '185', '189', '193', '197', '201', '205', '209', '213', '217', '221', '225', '229', '233']})), is_leaf=False, yang_name="allowed-channels", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='oc-wifi-types:channels-type', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """allowed_channels must be of a type compatible with oc-wifi-types:channels-type""",
          'defined-type': "oc-wifi-types:channels-type",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..14', '17', '21', '25', '29', '33', '36', '37', '40', '41', '44', '45', '48', '49', '52', '53', '56', '57', '60', '61', '64', '65', '69', '73', '77', '81', '85', '89', '93', '97', '100', '101', '104', '105', '108', '109', '112', '113', '116', '117', '120', '121', '124', '125', '128', '129', '132', '133', '136', '137', '140', '141', '144', '145', '149', '153', '157', '161', '165', '169', '173', '177', '181', '185', '189', '193', '197', '201', '205', '209', '213', '217', '221', '225', '229', '233']})), is_leaf=False, yang_name="allowed-channels", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='oc-wifi-types:channels-type', is_config=True)""",
        })

    self.__allowed_channels = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_allowed_channels(self):
    self.__allowed_channels = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..14', '17', '21', '25', '29', '33', '36', '37', '40', '41', '44', '45', '48', '49', '52', '53', '56', '57', '60', '61', '64', '65', '69', '73', '77', '81', '85', '89', '93', '97', '100', '101', '104', '105', '108', '109', '112', '113', '116', '117', '120', '121', '124', '125', '128', '129', '132', '133', '136', '137', '140', '141', '144', '145', '149', '153', '157', '161', '165', '169', '173', '177', '181', '185', '189', '193', '197', '201', '205', '209', '213', '217', '221', '225', '229', '233']})), is_leaf=False, yang_name="allowed-channels", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='oc-wifi-types:channels-type', is_config=True)


  def _get_dtp(self):
    """
    Getter method for dtp, mapped from YANG variable /radios/radio/config/dtp (boolean)

    YANG Description: Utilize dynamic transmit-power on this Radio.
    """
    return self.__dtp
      
  def _set_dtp(self, v, load=False):
    """
    Setter method for dtp, mapped from YANG variable /radios/radio/config/dtp (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dtp is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dtp() directly.

    YANG Description: Utilize dynamic transmit-power on this Radio.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="dtp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dtp must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="dtp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='boolean', is_config=True)""",
        })

    self.__dtp = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dtp(self):
    self.__dtp = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="dtp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='boolean', is_config=True)


  def _get_dtp_min(self):
    """
    Getter method for dtp_min, mapped from YANG variable /radios/radio/config/dtp_min (int8)

    YANG Description: Minimum allowed transmit-power on this radio, if utilizing
dtp. Expressed in dBm.
    """
    return self.__dtp_min
      
  def _set_dtp_min(self, v, load=False):
    """
    Setter method for dtp_min, mapped from YANG variable /radios/radio/config/dtp_min (int8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dtp_min is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dtp_min() directly.

    YANG Description: Minimum allowed transmit-power on this radio, if utilizing
dtp. Expressed in dBm.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8)(3), is_leaf=True, yang_name="dtp-min", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='int8', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dtp_min must be of a type compatible with int8""",
          'defined-type': "int8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8)(3), is_leaf=True, yang_name="dtp-min", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='int8', is_config=True)""",
        })

    self.__dtp_min = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dtp_min(self):
    self.__dtp_min = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8)(3), is_leaf=True, yang_name="dtp-min", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='int8', is_config=True)


  def _get_dtp_max(self):
    """
    Getter method for dtp_max, mapped from YANG variable /radios/radio/config/dtp_max (int8)

    YANG Description: Maximum allowed transmit-power on this radio, if utilizing
dtp. Expressed in dBm.
    """
    return self.__dtp_max
      
  def _set_dtp_max(self, v, load=False):
    """
    Setter method for dtp_max, mapped from YANG variable /radios/radio/config/dtp_max (int8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dtp_max is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dtp_max() directly.

    YANG Description: Maximum allowed transmit-power on this radio, if utilizing
dtp. Expressed in dBm.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8)(15), is_leaf=True, yang_name="dtp-max", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='int8', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dtp_max must be of a type compatible with int8""",
          'defined-type': "int8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8)(15), is_leaf=True, yang_name="dtp-max", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='int8', is_config=True)""",
        })

    self.__dtp_max = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dtp_max(self):
    self.__dtp_max = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8)(15), is_leaf=True, yang_name="dtp-max", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='int8', is_config=True)


  def _get_antenna_gain(self):
    """
    Getter method for antenna_gain, mapped from YANG variable /radios/radio/config/antenna_gain (int8)

    YANG Description: Antenna gain applied to this Radio; typically used when
external antennae connected.
    """
    return self.__antenna_gain
      
  def _set_antenna_gain(self, v, load=False):
    """
    Setter method for antenna_gain, mapped from YANG variable /radios/radio/config/antenna_gain (int8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_antenna_gain is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_antenna_gain() directly.

    YANG Description: Antenna gain applied to this Radio; typically used when
external antennae connected.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), is_leaf=True, yang_name="antenna-gain", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='int8', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """antenna_gain must be of a type compatible with int8""",
          'defined-type': "int8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), is_leaf=True, yang_name="antenna-gain", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='int8', is_config=True)""",
        })

    self.__antenna_gain = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_antenna_gain(self):
    self.__antenna_gain = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), is_leaf=True, yang_name="antenna-gain", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='int8', is_config=True)


  def _get_scanning(self):
    """
    Getter method for scanning, mapped from YANG variable /radios/radio/config/scanning (boolean)

    YANG Description: Whether the radio will perform off-channel scanning, to
collect neighboring RF information.
    """
    return self.__scanning
      
  def _set_scanning(self, v, load=False):
    """
    Setter method for scanning, mapped from YANG variable /radios/radio/config/scanning (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_scanning is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_scanning() directly.

    YANG Description: Whether the radio will perform off-channel scanning, to
collect neighboring RF information.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="scanning", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """scanning must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="scanning", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='boolean', is_config=True)""",
        })

    self.__scanning = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_scanning(self):
    self.__scanning = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="scanning", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='boolean', is_config=True)


  def _get_scanning_interval(self):
    """
    Getter method for scanning_interval, mapped from YANG variable /radios/radio/config/scanning_interval (uint8)

    YANG Description: How often, in seconds, the radio will go off-channel to
perform scanning.
    """
    return self.__scanning_interval
      
  def _set_scanning_interval(self, v, load=False):
    """
    Setter method for scanning_interval, mapped from YANG variable /radios/radio/config/scanning_interval (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_scanning_interval is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_scanning_interval() directly.

    YANG Description: How often, in seconds, the radio will go off-channel to
perform scanning.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="scanning-interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint8', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """scanning_interval must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="scanning-interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint8', is_config=True)""",
        })

    self.__scanning_interval = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_scanning_interval(self):
    self.__scanning_interval = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="scanning-interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint8', is_config=True)


  def _get_scanning_dwell_time(self):
    """
    Getter method for scanning_dwell_time, mapped from YANG variable /radios/radio/config/scanning_dwell_time (uint16)

    YANG Description: Amount of time, in milliseconds, the radio will spend on a
channel during scanning-interval. If a Monitor-mode Radio, it
will cycle through scanning-allowed-channels spending this
amount of time on each.
    """
    return self.__scanning_dwell_time
      
  def _set_scanning_dwell_time(self, v, load=False):
    """
    Setter method for scanning_dwell_time, mapped from YANG variable /radios/radio/config/scanning_dwell_time (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_scanning_dwell_time is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_scanning_dwell_time() directly.

    YANG Description: Amount of time, in milliseconds, the radio will spend on a
channel during scanning-interval. If a Monitor-mode Radio, it
will cycle through scanning-allowed-channels spending this
amount of time on each.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="scanning-dwell-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint16', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """scanning_dwell_time must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="scanning-dwell-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint16', is_config=True)""",
        })

    self.__scanning_dwell_time = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_scanning_dwell_time(self):
    self.__scanning_dwell_time = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="scanning-dwell-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint16', is_config=True)


  def _get_scanning_defer_clients(self):
    """
    Getter method for scanning_defer_clients, mapped from YANG variable /radios/radio/config/scanning_defer_clients (uint8)

    YANG Description: Sets the number of associated stations after which the radio
should not perform scanning.
    """
    return self.__scanning_defer_clients
      
  def _set_scanning_defer_clients(self, v, load=False):
    """
    Setter method for scanning_defer_clients, mapped from YANG variable /radios/radio/config/scanning_defer_clients (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_scanning_defer_clients is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_scanning_defer_clients() directly.

    YANG Description: Sets the number of associated stations after which the radio
should not perform scanning.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="scanning-defer-clients", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint8', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """scanning_defer_clients must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="scanning-defer-clients", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint8', is_config=True)""",
        })

    self.__scanning_defer_clients = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_scanning_defer_clients(self):
    self.__scanning_defer_clients = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="scanning-defer-clients", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint8', is_config=True)


  def _get_scanning_defer_traffic(self):
    """
    Getter method for scanning_defer_traffic, mapped from YANG variable /radios/radio/config/scanning_defer_traffic (boolean)

    YANG Description: Do not perform scanning if any traffic received from an
active Station in the past 100ms marked as AC_VO or AC_VI.
    """
    return self.__scanning_defer_traffic
      
  def _set_scanning_defer_traffic(self, v, load=False):
    """
    Setter method for scanning_defer_traffic, mapped from YANG variable /radios/radio/config/scanning_defer_traffic (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_scanning_defer_traffic is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_scanning_defer_traffic() directly.

    YANG Description: Do not perform scanning if any traffic received from an
active Station in the past 100ms marked as AC_VO or AC_VI.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="scanning-defer-traffic", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='boolean', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """scanning_defer_traffic must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="scanning-defer-traffic", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='boolean', is_config=True)""",
        })

    self.__scanning_defer_traffic = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_scanning_defer_traffic(self):
    self.__scanning_defer_traffic = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="scanning-defer-traffic", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='boolean', is_config=True)

  id = __builtin__.property(_get_id, _set_id)
  operating_frequency = __builtin__.property(_get_operating_frequency, _set_operating_frequency)
  enabled = __builtin__.property(_get_enabled, _set_enabled)
  transmit_power = __builtin__.property(_get_transmit_power, _set_transmit_power)
  transmit_eirp = __builtin__.property(_get_transmit_eirp, _set_transmit_eirp)
  channel = __builtin__.property(_get_channel, _set_channel)
  channel_width = __builtin__.property(_get_channel_width, _set_channel_width)
  bss_coloring = __builtin__.property(_get_bss_coloring, _set_bss_coloring)
  bss_color_id = __builtin__.property(_get_bss_color_id, _set_bss_color_id)
  dca = __builtin__.property(_get_dca, _set_dca)
  allowed_channels = __builtin__.property(_get_allowed_channels, _set_allowed_channels)
  dtp = __builtin__.property(_get_dtp, _set_dtp)
  dtp_min = __builtin__.property(_get_dtp_min, _set_dtp_min)
  dtp_max = __builtin__.property(_get_dtp_max, _set_dtp_max)
  antenna_gain = __builtin__.property(_get_antenna_gain, _set_antenna_gain)
  scanning = __builtin__.property(_get_scanning, _set_scanning)
  scanning_interval = __builtin__.property(_get_scanning_interval, _set_scanning_interval)
  scanning_dwell_time = __builtin__.property(_get_scanning_dwell_time, _set_scanning_dwell_time)
  scanning_defer_clients = __builtin__.property(_get_scanning_defer_clients, _set_scanning_defer_clients)
  scanning_defer_traffic = __builtin__.property(_get_scanning_defer_traffic, _set_scanning_defer_traffic)


  _pyangbind_elements = OrderedDict([('id', id), ('operating_frequency', operating_frequency), ('enabled', enabled), ('transmit_power', transmit_power), ('transmit_eirp', transmit_eirp), ('channel', channel), ('channel_width', channel_width), ('bss_coloring', bss_coloring), ('bss_color_id', bss_color_id), ('dca', dca), ('allowed_channels', allowed_channels), ('dtp', dtp), ('dtp_min', dtp_min), ('dtp_max', dtp_max), ('antenna_gain', antenna_gain), ('scanning', scanning), ('scanning_interval', scanning_interval), ('scanning_dwell_time', scanning_dwell_time), ('scanning_defer_clients', scanning_defer_clients), ('scanning_defer_traffic', scanning_defer_traffic), ])


class yc_counters_openconfig_wifi_phy__radios_radio_state_counters(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-wifi-phy - based on the path /radios/radio/state/counters. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: A collection of radio-related statistics objects.
  """
  __slots__ = ('_path_helper', '_extmethods', '__failed_fcs_frames','__noise_floor',)

  _yang_name = 'counters'
  _yang_namespace = 'http://openconfig.net/yang/wifi-phy'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__failed_fcs_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="failed-fcs-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='oc-yang:counter64', is_config=False)
    self.__noise_floor = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), is_leaf=True, yang_name="noise-floor", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='int8', 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 ['radios', 'radio', 'state', 'counters']

  def _get_failed_fcs_frames(self):
    """
    Getter method for failed_fcs_frames, mapped from YANG variable /radios/radio/state/counters/failed_fcs_frames (oc-yang:counter64)

    YANG Description: Number of frames that failed the FCS.
    """
    return self.__failed_fcs_frames
      
  def _set_failed_fcs_frames(self, v, load=False):
    """
    Setter method for failed_fcs_frames, mapped from YANG variable /radios/radio/state/counters/failed_fcs_frames (oc-yang:counter64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_failed_fcs_frames is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_failed_fcs_frames() directly.

    YANG Description: Number of frames that failed the FCS.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="failed-fcs-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='oc-yang:counter64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """failed_fcs_frames must be of a type compatible with oc-yang:counter64""",
          'defined-type': "oc-yang:counter64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="failed-fcs-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='oc-yang:counter64', is_config=False)""",
        })

    self.__failed_fcs_frames = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_failed_fcs_frames(self):
    self.__failed_fcs_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="failed-fcs-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='oc-yang:counter64', is_config=False)


  def _get_noise_floor(self):
    """
    Getter method for noise_floor, mapped from YANG variable /radios/radio/state/counters/noise_floor (int8)

    YANG Description: Noise Floor, as measured by this radio.
    """
    return self.__noise_floor
      
  def _set_noise_floor(self, v, load=False):
    """
    Setter method for noise_floor, mapped from YANG variable /radios/radio/state/counters/noise_floor (int8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_noise_floor is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_noise_floor() directly.

    YANG Description: Noise Floor, as measured by this radio.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), is_leaf=True, yang_name="noise-floor", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='int8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """noise_floor must be of a type compatible with int8""",
          'defined-type': "int8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), is_leaf=True, yang_name="noise-floor", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='int8', is_config=False)""",
        })

    self.__noise_floor = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_noise_floor(self):
    self.__noise_floor = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), is_leaf=True, yang_name="noise-floor", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='int8', is_config=False)

  failed_fcs_frames = __builtin__.property(_get_failed_fcs_frames)
  noise_floor = __builtin__.property(_get_noise_floor)


  _pyangbind_elements = OrderedDict([('failed_fcs_frames', failed_fcs_frames), ('noise_floor', noise_floor), ])


class yc_state_openconfig_wifi_phy__radios_radio_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-wifi-phy - based on the path /radios/radio/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Operational state data at the global radio level.
  """
  __slots__ = ('_path_helper', '_extmethods', '__id','__operating_frequency','__enabled','__transmit_power','__transmit_eirp','__channel','__channel_width','__bss_coloring','__bss_color_id','__dca','__allowed_channels','__dtp','__dtp_min','__dtp_max','__antenna_gain','__scanning','__scanning_interval','__scanning_dwell_time','__scanning_defer_clients','__scanning_defer_traffic','__base_radio_mac','__allowed_regulatory_channels','__software_selectable','__dfs_hit_time','__supported_channels','__channel_change_reason','__total_channel_utilization','__rx_dot11_channel_utilization','__rx_noise_channel_utilization','__tx_dot11_channel_utilization','__obss_rx','__counters',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi-phy'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__id = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint8', is_config=False)
    self.__operating_frequency = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},), is_leaf=True, yang_name="operating-frequency", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='identityref', is_config=False)
    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='boolean', is_config=False)
    self.__transmit_power = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8)(9), is_leaf=True, yang_name="transmit-power", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='int8', is_config=False)
    self.__transmit_eirp = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="transmit-eirp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint8', is_config=False)
    self.__channel = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..233']}), is_leaf=True, yang_name="channel", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint8', is_config=False)
    self.__channel_width = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)(20), is_leaf=True, yang_name="channel-width", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint8', is_config=False)
    self.__bss_coloring = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="bss-coloring", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='boolean', is_config=False)
    self.__bss_color_id = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..63']}), is_leaf=True, yang_name="bss-color-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint8', is_config=False)
    self.__dca = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="dca", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='boolean', is_config=False)
    self.__allowed_channels = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..14', '17', '21', '25', '29', '33', '36', '37', '40', '41', '44', '45', '48', '49', '52', '53', '56', '57', '60', '61', '64', '65', '69', '73', '77', '81', '85', '89', '93', '97', '100', '101', '104', '105', '108', '109', '112', '113', '116', '117', '120', '121', '124', '125', '128', '129', '132', '133', '136', '137', '140', '141', '144', '145', '149', '153', '157', '161', '165', '169', '173', '177', '181', '185', '189', '193', '197', '201', '205', '209', '213', '217', '221', '225', '229', '233']})), is_leaf=False, yang_name="allowed-channels", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='oc-wifi-types:channels-type', is_config=False)
    self.__dtp = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="dtp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='boolean', is_config=False)
    self.__dtp_min = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8)(3), is_leaf=True, yang_name="dtp-min", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='int8', is_config=False)
    self.__dtp_max = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8)(15), is_leaf=True, yang_name="dtp-max", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='int8', is_config=False)
    self.__antenna_gain = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), is_leaf=True, yang_name="antenna-gain", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='int8', is_config=False)
    self.__scanning = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="scanning", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='boolean', is_config=False)
    self.__scanning_interval = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="scanning-interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint8', is_config=False)
    self.__scanning_dwell_time = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="scanning-dwell-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint16', is_config=False)
    self.__scanning_defer_clients = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="scanning-defer-clients", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint8', is_config=False)
    self.__scanning_defer_traffic = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="scanning-defer-traffic", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='boolean', is_config=False)
    self.__base_radio_mac = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="base-radio-mac", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='oc-yang:mac-address', is_config=False)
    self.__allowed_regulatory_channels = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..14', '17', '21', '25', '29', '33', '36', '37', '40', '41', '44', '45', '48', '49', '52', '53', '56', '57', '60', '61', '64', '65', '69', '73', '77', '81', '85', '89', '93', '97', '100', '101', '104', '105', '108', '109', '112', '113', '116', '117', '120', '121', '124', '125', '128', '129', '132', '133', '136', '137', '140', '141', '144', '145', '149', '153', '157', '161', '165', '169', '173', '177', '181', '185', '189', '193', '197', '201', '205', '209', '213', '217', '221', '225', '229', '233']})), is_leaf=False, yang_name="allowed-regulatory-channels", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='oc-wifi-types:channels-type', is_config=False)
    self.__software_selectable = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="software-selectable", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='boolean', is_config=False)
    self.__dfs_hit_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="dfs-hit-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='oc-types:timeticks64', is_config=False)
    self.__supported_channels = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..14', '17', '21', '25', '29', '33', '36', '37', '40', '41', '44', '45', '48', '49', '52', '53', '56', '57', '60', '61', '64', '65', '69', '73', '77', '81', '85', '89', '93', '97', '100', '101', '104', '105', '108', '109', '112', '113', '116', '117', '120', '121', '124', '125', '128', '129', '132', '133', '136', '137', '140', '141', '144', '145', '149', '153', '157', '161', '165', '169', '173', '177', '181', '185', '189', '193', '197', '201', '205', '209', '213', '217', '221', '225', '229', '233']})), is_leaf=False, yang_name="supported-channels", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='oc-wifi-types:channels-type', is_config=False)
    self.__channel_change_reason = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'DFS': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:DFS': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:DFS': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'NOISE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:NOISE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:NOISE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'ERRORS': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:ERRORS': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:ERRORS': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'BETTER_CHANNEL': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:BETTER_CHANNEL': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:BETTER_CHANNEL': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},), is_leaf=True, yang_name="channel-change-reason", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='identityref', is_config=False)
    self.__total_channel_utilization = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="total-channel-utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='oc-types:percentage', is_config=False)
    self.__rx_dot11_channel_utilization = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="rx-dot11-channel-utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='oc-types:percentage', is_config=False)
    self.__rx_noise_channel_utilization = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="rx-noise-channel-utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='oc-types:percentage', is_config=False)
    self.__tx_dot11_channel_utilization = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="tx-dot11-channel-utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='oc-types:percentage', is_config=False)
    self.__obss_rx = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="obss-rx", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='oc-types:percentage', is_config=False)
    self.__counters = YANGDynClass(base=yc_counters_openconfig_wifi_phy__radios_radio_state_counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', 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 ['radios', 'radio', 'state']

  def _get_id(self):
    """
    Getter method for id, mapped from YANG variable /radios/radio/state/id (uint8)

    YANG Description: Unique ID of the radio. Each ID has a corresponding
operating-frequency.
    """
    return self.__id
      
  def _set_id(self, v, load=False):
    """
    Setter method for id, mapped from YANG variable /radios/radio/state/id (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_id is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_id() directly.

    YANG Description: Unique ID of the radio. Each ID has a corresponding
operating-frequency.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """id must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint8', is_config=False)""",
        })

    self.__id = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_id(self):
    self.__id = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint8', is_config=False)


  def _get_operating_frequency(self):
    """
    Getter method for operating_frequency, mapped from YANG variable /radios/radio/state/operating_frequency (identityref)

    YANG Description: Operating frequency of this radio.
    """
    return self.__operating_frequency
      
  def _set_operating_frequency(self, v, load=False):
    """
    Setter method for operating_frequency, mapped from YANG variable /radios/radio/state/operating_frequency (identityref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_operating_frequency is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_operating_frequency() directly.

    YANG Description: Operating frequency of this radio.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},), is_leaf=True, yang_name="operating-frequency", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='identityref', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """operating_frequency must be of a type compatible with identityref""",
          'defined-type': "openconfig-wifi-phy:identityref",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},), is_leaf=True, yang_name="operating-frequency", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='identityref', is_config=False)""",
        })

    self.__operating_frequency = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_operating_frequency(self):
    self.__operating_frequency = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_5GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2_5_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_6GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:FREQ_2_5_6_GHZ': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},), is_leaf=True, yang_name="operating-frequency", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='identityref', is_config=False)


  def _get_enabled(self):
    """
    Getter method for enabled, mapped from YANG variable /radios/radio/state/enabled (boolean)

    YANG Description: The configured state (enabled/disabled) of this radio
interface.
    """
    return self.__enabled
      
  def _set_enabled(self, v, load=False):
    """
    Setter method for enabled, mapped from YANG variable /radios/radio/state/enabled (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_enabled is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_enabled() directly.

    YANG Description: The configured state (enabled/disabled) of this radio
interface.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """enabled must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='boolean', is_config=False)""",
        })

    self.__enabled = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_enabled(self):
    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='boolean', is_config=False)


  def _get_transmit_power(self):
    """
    Getter method for transmit_power, mapped from YANG variable /radios/radio/state/transmit_power (int8)

    YANG Description: Transmit power of the radio, in dBm.
    """
    return self.__transmit_power
      
  def _set_transmit_power(self, v, load=False):
    """
    Setter method for transmit_power, mapped from YANG variable /radios/radio/state/transmit_power (int8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_transmit_power is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_transmit_power() directly.

    YANG Description: Transmit power of the radio, in dBm.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8)(9), is_leaf=True, yang_name="transmit-power", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='int8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """transmit_power must be of a type compatible with int8""",
          'defined-type': "int8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8)(9), is_leaf=True, yang_name="transmit-power", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='int8', is_config=False)""",
        })

    self.__transmit_power = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_transmit_power(self):
    self.__transmit_power = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8)(9), is_leaf=True, yang_name="transmit-power", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='int8', is_config=False)


  def _get_transmit_eirp(self):
    """
    Getter method for transmit_eirp, mapped from YANG variable /radios/radio/state/transmit_eirp (uint8)

    YANG Description: Transmit eirp of the radio + antenna, in dBm.
    """
    return self.__transmit_eirp
      
  def _set_transmit_eirp(self, v, load=False):
    """
    Setter method for transmit_eirp, mapped from YANG variable /radios/radio/state/transmit_eirp (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_transmit_eirp is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_transmit_eirp() directly.

    YANG Description: Transmit eirp of the radio + antenna, in dBm.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="transmit-eirp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """transmit_eirp must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="transmit-eirp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint8', is_config=False)""",
        })

    self.__transmit_eirp = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_transmit_eirp(self):
    self.__transmit_eirp = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="transmit-eirp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint8', is_config=False)


  def _get_channel(self):
    """
    Getter method for channel, mapped from YANG variable /radios/radio/state/channel (uint8)

    YANG Description: Operating channel of this radio. If using channel-bonding
this will represent the Primary 20MHz channel of the
40,80,160MHz channel.
    """
    return self.__channel
      
  def _set_channel(self, v, load=False):
    """
    Setter method for channel, mapped from YANG variable /radios/radio/state/channel (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_channel is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_channel() directly.

    YANG Description: Operating channel of this radio. If using channel-bonding
this will represent the Primary 20MHz channel of the
40,80,160MHz channel.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..233']}), is_leaf=True, yang_name="channel", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """channel must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..233']}), is_leaf=True, yang_name="channel", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint8', is_config=False)""",
        })

    self.__channel = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_channel(self):
    self.__channel = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..233']}), is_leaf=True, yang_name="channel", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint8', is_config=False)


  def _get_channel_width(self):
    """
    Getter method for channel_width, mapped from YANG variable /radios/radio/state/channel_width (uint8)

    YANG Description: Operating channel-width of this radio.
    """
    return self.__channel_width
      
  def _set_channel_width(self, v, load=False):
    """
    Setter method for channel_width, mapped from YANG variable /radios/radio/state/channel_width (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_channel_width is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_channel_width() directly.

    YANG Description: Operating channel-width of this radio.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)(20), is_leaf=True, yang_name="channel-width", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """channel_width must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)(20), is_leaf=True, yang_name="channel-width", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint8', is_config=False)""",
        })

    self.__channel_width = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_channel_width(self):
    self.__channel_width = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8)(20), is_leaf=True, yang_name="channel-width", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint8', is_config=False)


  def _get_bss_coloring(self):
    """
    Getter method for bss_coloring, mapped from YANG variable /radios/radio/state/bss_coloring (boolean)

    YANG Description: Utilize BSS coloring on this radio.
    """
    return self.__bss_coloring
      
  def _set_bss_coloring(self, v, load=False):
    """
    Setter method for bss_coloring, mapped from YANG variable /radios/radio/state/bss_coloring (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_bss_coloring is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_bss_coloring() directly.

    YANG Description: Utilize BSS coloring on this radio.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="bss-coloring", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """bss_coloring must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="bss-coloring", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='boolean', is_config=False)""",
        })

    self.__bss_coloring = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_bss_coloring(self):
    self.__bss_coloring = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="bss-coloring", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='boolean', is_config=False)


  def _get_bss_color_id(self):
    """
    Getter method for bss_color_id, mapped from YANG variable /radios/radio/state/bss_color_id (uint8)

    YANG Description: Numerical identifier of the BSS.
    """
    return self.__bss_color_id
      
  def _set_bss_color_id(self, v, load=False):
    """
    Setter method for bss_color_id, mapped from YANG variable /radios/radio/state/bss_color_id (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_bss_color_id is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_bss_color_id() directly.

    YANG Description: Numerical identifier of the BSS.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..63']}), is_leaf=True, yang_name="bss-color-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """bss_color_id must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..63']}), is_leaf=True, yang_name="bss-color-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint8', is_config=False)""",
        })

    self.__bss_color_id = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_bss_color_id(self):
    self.__bss_color_id = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..63']}), is_leaf=True, yang_name="bss-color-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint8', is_config=False)


  def _get_dca(self):
    """
    Getter method for dca, mapped from YANG variable /radios/radio/state/dca (boolean)

    YANG Description: Utilize Dynamic Channel Assignment on this Radio.
    """
    return self.__dca
      
  def _set_dca(self, v, load=False):
    """
    Setter method for dca, mapped from YANG variable /radios/radio/state/dca (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dca is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dca() directly.

    YANG Description: Utilize Dynamic Channel Assignment on this Radio.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="dca", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dca must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="dca", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='boolean', is_config=False)""",
        })

    self.__dca = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dca(self):
    self.__dca = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="dca", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='boolean', is_config=False)


  def _get_allowed_channels(self):
    """
    Getter method for allowed_channels, mapped from YANG variable /radios/radio/state/allowed_channels (oc-wifi-types:channels-type)

    YANG Description: Allowed channel list for this Radio to utilize.
    """
    return self.__allowed_channels
      
  def _set_allowed_channels(self, v, load=False):
    """
    Setter method for allowed_channels, mapped from YANG variable /radios/radio/state/allowed_channels (oc-wifi-types:channels-type)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_allowed_channels is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_allowed_channels() directly.

    YANG Description: Allowed channel list for this Radio to utilize.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..14', '17', '21', '25', '29', '33', '36', '37', '40', '41', '44', '45', '48', '49', '52', '53', '56', '57', '60', '61', '64', '65', '69', '73', '77', '81', '85', '89', '93', '97', '100', '101', '104', '105', '108', '109', '112', '113', '116', '117', '120', '121', '124', '125', '128', '129', '132', '133', '136', '137', '140', '141', '144', '145', '149', '153', '157', '161', '165', '169', '173', '177', '181', '185', '189', '193', '197', '201', '205', '209', '213', '217', '221', '225', '229', '233']})), is_leaf=False, yang_name="allowed-channels", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='oc-wifi-types:channels-type', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """allowed_channels must be of a type compatible with oc-wifi-types:channels-type""",
          'defined-type': "oc-wifi-types:channels-type",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..14', '17', '21', '25', '29', '33', '36', '37', '40', '41', '44', '45', '48', '49', '52', '53', '56', '57', '60', '61', '64', '65', '69', '73', '77', '81', '85', '89', '93', '97', '100', '101', '104', '105', '108', '109', '112', '113', '116', '117', '120', '121', '124', '125', '128', '129', '132', '133', '136', '137', '140', '141', '144', '145', '149', '153', '157', '161', '165', '169', '173', '177', '181', '185', '189', '193', '197', '201', '205', '209', '213', '217', '221', '225', '229', '233']})), is_leaf=False, yang_name="allowed-channels", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='oc-wifi-types:channels-type', is_config=False)""",
        })

    self.__allowed_channels = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_allowed_channels(self):
    self.__allowed_channels = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..14', '17', '21', '25', '29', '33', '36', '37', '40', '41', '44', '45', '48', '49', '52', '53', '56', '57', '60', '61', '64', '65', '69', '73', '77', '81', '85', '89', '93', '97', '100', '101', '104', '105', '108', '109', '112', '113', '116', '117', '120', '121', '124', '125', '128', '129', '132', '133', '136', '137', '140', '141', '144', '145', '149', '153', '157', '161', '165', '169', '173', '177', '181', '185', '189', '193', '197', '201', '205', '209', '213', '217', '221', '225', '229', '233']})), is_leaf=False, yang_name="allowed-channels", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='oc-wifi-types:channels-type', is_config=False)


  def _get_dtp(self):
    """
    Getter method for dtp, mapped from YANG variable /radios/radio/state/dtp (boolean)

    YANG Description: Utilize dynamic transmit-power on this Radio.
    """
    return self.__dtp
      
  def _set_dtp(self, v, load=False):
    """
    Setter method for dtp, mapped from YANG variable /radios/radio/state/dtp (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dtp is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dtp() directly.

    YANG Description: Utilize dynamic transmit-power on this Radio.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="dtp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dtp must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="dtp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='boolean', is_config=False)""",
        })

    self.__dtp = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dtp(self):
    self.__dtp = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="dtp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='boolean', is_config=False)


  def _get_dtp_min(self):
    """
    Getter method for dtp_min, mapped from YANG variable /radios/radio/state/dtp_min (int8)

    YANG Description: Minimum allowed transmit-power on this radio, if utilizing
dtp. Expressed in dBm.
    """
    return self.__dtp_min
      
  def _set_dtp_min(self, v, load=False):
    """
    Setter method for dtp_min, mapped from YANG variable /radios/radio/state/dtp_min (int8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dtp_min is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dtp_min() directly.

    YANG Description: Minimum allowed transmit-power on this radio, if utilizing
dtp. Expressed in dBm.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8)(3), is_leaf=True, yang_name="dtp-min", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='int8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dtp_min must be of a type compatible with int8""",
          'defined-type': "int8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8)(3), is_leaf=True, yang_name="dtp-min", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='int8', is_config=False)""",
        })

    self.__dtp_min = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dtp_min(self):
    self.__dtp_min = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8)(3), is_leaf=True, yang_name="dtp-min", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='int8', is_config=False)


  def _get_dtp_max(self):
    """
    Getter method for dtp_max, mapped from YANG variable /radios/radio/state/dtp_max (int8)

    YANG Description: Maximum allowed transmit-power on this radio, if utilizing
dtp. Expressed in dBm.
    """
    return self.__dtp_max
      
  def _set_dtp_max(self, v, load=False):
    """
    Setter method for dtp_max, mapped from YANG variable /radios/radio/state/dtp_max (int8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dtp_max is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dtp_max() directly.

    YANG Description: Maximum allowed transmit-power on this radio, if utilizing
dtp. Expressed in dBm.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8)(15), is_leaf=True, yang_name="dtp-max", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='int8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dtp_max must be of a type compatible with int8""",
          'defined-type': "int8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8)(15), is_leaf=True, yang_name="dtp-max", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='int8', is_config=False)""",
        })

    self.__dtp_max = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dtp_max(self):
    self.__dtp_max = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), default=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8)(15), is_leaf=True, yang_name="dtp-max", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='int8', is_config=False)


  def _get_antenna_gain(self):
    """
    Getter method for antenna_gain, mapped from YANG variable /radios/radio/state/antenna_gain (int8)

    YANG Description: Antenna gain applied to this Radio; typically used when
external antennae connected.
    """
    return self.__antenna_gain
      
  def _set_antenna_gain(self, v, load=False):
    """
    Setter method for antenna_gain, mapped from YANG variable /radios/radio/state/antenna_gain (int8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_antenna_gain is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_antenna_gain() directly.

    YANG Description: Antenna gain applied to this Radio; typically used when
external antennae connected.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), is_leaf=True, yang_name="antenna-gain", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='int8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """antenna_gain must be of a type compatible with int8""",
          'defined-type': "int8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), is_leaf=True, yang_name="antenna-gain", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='int8', is_config=False)""",
        })

    self.__antenna_gain = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_antenna_gain(self):
    self.__antenna_gain = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), is_leaf=True, yang_name="antenna-gain", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='int8', is_config=False)


  def _get_scanning(self):
    """
    Getter method for scanning, mapped from YANG variable /radios/radio/state/scanning (boolean)

    YANG Description: Whether the radio will perform off-channel scanning, to
collect neighboring RF information.
    """
    return self.__scanning
      
  def _set_scanning(self, v, load=False):
    """
    Setter method for scanning, mapped from YANG variable /radios/radio/state/scanning (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_scanning is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_scanning() directly.

    YANG Description: Whether the radio will perform off-channel scanning, to
collect neighboring RF information.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="scanning", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """scanning must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="scanning", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='boolean', is_config=False)""",
        })

    self.__scanning = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_scanning(self):
    self.__scanning = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="scanning", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='boolean', is_config=False)


  def _get_scanning_interval(self):
    """
    Getter method for scanning_interval, mapped from YANG variable /radios/radio/state/scanning_interval (uint8)

    YANG Description: How often, in seconds, the radio will go off-channel to
perform scanning.
    """
    return self.__scanning_interval
      
  def _set_scanning_interval(self, v, load=False):
    """
    Setter method for scanning_interval, mapped from YANG variable /radios/radio/state/scanning_interval (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_scanning_interval is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_scanning_interval() directly.

    YANG Description: How often, in seconds, the radio will go off-channel to
perform scanning.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="scanning-interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """scanning_interval must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="scanning-interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint8', is_config=False)""",
        })

    self.__scanning_interval = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_scanning_interval(self):
    self.__scanning_interval = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="scanning-interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint8', is_config=False)


  def _get_scanning_dwell_time(self):
    """
    Getter method for scanning_dwell_time, mapped from YANG variable /radios/radio/state/scanning_dwell_time (uint16)

    YANG Description: Amount of time, in milliseconds, the radio will spend on a
channel during scanning-interval. If a Monitor-mode Radio, it
will cycle through scanning-allowed-channels spending this
amount of time on each.
    """
    return self.__scanning_dwell_time
      
  def _set_scanning_dwell_time(self, v, load=False):
    """
    Setter method for scanning_dwell_time, mapped from YANG variable /radios/radio/state/scanning_dwell_time (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_scanning_dwell_time is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_scanning_dwell_time() directly.

    YANG Description: Amount of time, in milliseconds, the radio will spend on a
channel during scanning-interval. If a Monitor-mode Radio, it
will cycle through scanning-allowed-channels spending this
amount of time on each.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="scanning-dwell-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint16', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """scanning_dwell_time must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="scanning-dwell-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint16', is_config=False)""",
        })

    self.__scanning_dwell_time = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_scanning_dwell_time(self):
    self.__scanning_dwell_time = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="scanning-dwell-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint16', is_config=False)


  def _get_scanning_defer_clients(self):
    """
    Getter method for scanning_defer_clients, mapped from YANG variable /radios/radio/state/scanning_defer_clients (uint8)

    YANG Description: Sets the number of associated stations after which the radio
should not perform scanning.
    """
    return self.__scanning_defer_clients
      
  def _set_scanning_defer_clients(self, v, load=False):
    """
    Setter method for scanning_defer_clients, mapped from YANG variable /radios/radio/state/scanning_defer_clients (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_scanning_defer_clients is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_scanning_defer_clients() directly.

    YANG Description: Sets the number of associated stations after which the radio
should not perform scanning.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="scanning-defer-clients", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """scanning_defer_clients must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="scanning-defer-clients", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint8', is_config=False)""",
        })

    self.__scanning_defer_clients = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_scanning_defer_clients(self):
    self.__scanning_defer_clients = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="scanning-defer-clients", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint8', is_config=False)


  def _get_scanning_defer_traffic(self):
    """
    Getter method for scanning_defer_traffic, mapped from YANG variable /radios/radio/state/scanning_defer_traffic (boolean)

    YANG Description: Do not perform scanning if any traffic received from an
active Station in the past 100ms marked as AC_VO or AC_VI.
    """
    return self.__scanning_defer_traffic
      
  def _set_scanning_defer_traffic(self, v, load=False):
    """
    Setter method for scanning_defer_traffic, mapped from YANG variable /radios/radio/state/scanning_defer_traffic (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_scanning_defer_traffic is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_scanning_defer_traffic() directly.

    YANG Description: Do not perform scanning if any traffic received from an
active Station in the past 100ms marked as AC_VO or AC_VI.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="scanning-defer-traffic", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """scanning_defer_traffic must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="scanning-defer-traffic", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='boolean', is_config=False)""",
        })

    self.__scanning_defer_traffic = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_scanning_defer_traffic(self):
    self.__scanning_defer_traffic = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="scanning-defer-traffic", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='boolean', is_config=False)


  def _get_base_radio_mac(self):
    """
    Getter method for base_radio_mac, mapped from YANG variable /radios/radio/state/base_radio_mac (oc-yang:mac-address)

    YANG Description: Represents the 'burned-in' base-radio MAC
address for the a Radio interface.
    """
    return self.__base_radio_mac
      
  def _set_base_radio_mac(self, v, load=False):
    """
    Setter method for base_radio_mac, mapped from YANG variable /radios/radio/state/base_radio_mac (oc-yang:mac-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_base_radio_mac is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_base_radio_mac() directly.

    YANG Description: Represents the 'burned-in' base-radio MAC
address for the a Radio interface.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="base-radio-mac", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='oc-yang:mac-address', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """base_radio_mac must be of a type compatible with oc-yang:mac-address""",
          'defined-type': "oc-yang:mac-address",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="base-radio-mac", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='oc-yang:mac-address', is_config=False)""",
        })

    self.__base_radio_mac = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_base_radio_mac(self):
    self.__base_radio_mac = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="base-radio-mac", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='oc-yang:mac-address', is_config=False)


  def _get_allowed_regulatory_channels(self):
    """
    Getter method for allowed_regulatory_channels, mapped from YANG variable /radios/radio/state/allowed_regulatory_channels (oc-wifi-types:channels-type)

    YANG Description: Allowed channels, per regulatory restrictions, this Radio is
capable of using. This is typically a combination of AP
certification and allowed frequencies per country.
    """
    return self.__allowed_regulatory_channels
      
  def _set_allowed_regulatory_channels(self, v, load=False):
    """
    Setter method for allowed_regulatory_channels, mapped from YANG variable /radios/radio/state/allowed_regulatory_channels (oc-wifi-types:channels-type)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_allowed_regulatory_channels is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_allowed_regulatory_channels() directly.

    YANG Description: Allowed channels, per regulatory restrictions, this Radio is
capable of using. This is typically a combination of AP
certification and allowed frequencies per country.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..14', '17', '21', '25', '29', '33', '36', '37', '40', '41', '44', '45', '48', '49', '52', '53', '56', '57', '60', '61', '64', '65', '69', '73', '77', '81', '85', '89', '93', '97', '100', '101', '104', '105', '108', '109', '112', '113', '116', '117', '120', '121', '124', '125', '128', '129', '132', '133', '136', '137', '140', '141', '144', '145', '149', '153', '157', '161', '165', '169', '173', '177', '181', '185', '189', '193', '197', '201', '205', '209', '213', '217', '221', '225', '229', '233']})), is_leaf=False, yang_name="allowed-regulatory-channels", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='oc-wifi-types:channels-type', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """allowed_regulatory_channels must be of a type compatible with oc-wifi-types:channels-type""",
          'defined-type': "oc-wifi-types:channels-type",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..14', '17', '21', '25', '29', '33', '36', '37', '40', '41', '44', '45', '48', '49', '52', '53', '56', '57', '60', '61', '64', '65', '69', '73', '77', '81', '85', '89', '93', '97', '100', '101', '104', '105', '108', '109', '112', '113', '116', '117', '120', '121', '124', '125', '128', '129', '132', '133', '136', '137', '140', '141', '144', '145', '149', '153', '157', '161', '165', '169', '173', '177', '181', '185', '189', '193', '197', '201', '205', '209', '213', '217', '221', '225', '229', '233']})), is_leaf=False, yang_name="allowed-regulatory-channels", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='oc-wifi-types:channels-type', is_config=False)""",
        })

    self.__allowed_regulatory_channels = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_allowed_regulatory_channels(self):
    self.__allowed_regulatory_channels = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..14', '17', '21', '25', '29', '33', '36', '37', '40', '41', '44', '45', '48', '49', '52', '53', '56', '57', '60', '61', '64', '65', '69', '73', '77', '81', '85', '89', '93', '97', '100', '101', '104', '105', '108', '109', '112', '113', '116', '117', '120', '121', '124', '125', '128', '129', '132', '133', '136', '137', '140', '141', '144', '145', '149', '153', '157', '161', '165', '169', '173', '177', '181', '185', '189', '193', '197', '201', '205', '209', '213', '217', '221', '225', '229', '233']})), is_leaf=False, yang_name="allowed-regulatory-channels", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='oc-wifi-types:channels-type', is_config=False)


  def _get_software_selectable(self):
    """
    Getter method for software_selectable, mapped from YANG variable /radios/radio/state/software_selectable (boolean)

    YANG Description: Indicates whether or not the operating frequency can be
configured by the operator.
    """
    return self.__software_selectable
      
  def _set_software_selectable(self, v, load=False):
    """
    Setter method for software_selectable, mapped from YANG variable /radios/radio/state/software_selectable (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_software_selectable is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_software_selectable() directly.

    YANG Description: Indicates whether or not the operating frequency can be
configured by the operator.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="software-selectable", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """software_selectable must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="software-selectable", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='boolean', is_config=False)""",
        })

    self.__software_selectable = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_software_selectable(self):
    self.__software_selectable = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="software-selectable", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='boolean', is_config=False)


  def _get_dfs_hit_time(self):
    """
    Getter method for dfs_hit_time, mapped from YANG variable /radios/radio/state/dfs_hit_time (oc-types:timeticks64)

    YANG Description: Reports the time of the last DFS hit. The value is the
timestamp in nanoseconds relative to the Unix Epoch
(Jan 1, 1970 00:00:00 UTC).
    """
    return self.__dfs_hit_time
      
  def _set_dfs_hit_time(self, v, load=False):
    """
    Setter method for dfs_hit_time, mapped from YANG variable /radios/radio/state/dfs_hit_time (oc-types:timeticks64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_dfs_hit_time is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_dfs_hit_time() directly.

    YANG Description: Reports the time of the last DFS hit. The value is the
timestamp in nanoseconds relative to the Unix Epoch
(Jan 1, 1970 00:00:00 UTC).
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="dfs-hit-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='oc-types:timeticks64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """dfs_hit_time must be of a type compatible with oc-types:timeticks64""",
          'defined-type': "oc-types:timeticks64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="dfs-hit-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='oc-types:timeticks64', is_config=False)""",
        })

    self.__dfs_hit_time = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_dfs_hit_time(self):
    self.__dfs_hit_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="dfs-hit-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='oc-types:timeticks64', is_config=False)


  def _get_supported_channels(self):
    """
    Getter method for supported_channels, mapped from YANG variable /radios/radio/state/supported_channels (oc-wifi-types:channels-type)

    YANG Description: Channels allowed by a combination of regulatory and AP certification
restrictions.
    """
    return self.__supported_channels
      
  def _set_supported_channels(self, v, load=False):
    """
    Setter method for supported_channels, mapped from YANG variable /radios/radio/state/supported_channels (oc-wifi-types:channels-type)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_supported_channels is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_supported_channels() directly.

    YANG Description: Channels allowed by a combination of regulatory and AP certification
restrictions.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..14', '17', '21', '25', '29', '33', '36', '37', '40', '41', '44', '45', '48', '49', '52', '53', '56', '57', '60', '61', '64', '65', '69', '73', '77', '81', '85', '89', '93', '97', '100', '101', '104', '105', '108', '109', '112', '113', '116', '117', '120', '121', '124', '125', '128', '129', '132', '133', '136', '137', '140', '141', '144', '145', '149', '153', '157', '161', '165', '169', '173', '177', '181', '185', '189', '193', '197', '201', '205', '209', '213', '217', '221', '225', '229', '233']})), is_leaf=False, yang_name="supported-channels", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='oc-wifi-types:channels-type', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """supported_channels must be of a type compatible with oc-wifi-types:channels-type""",
          'defined-type': "oc-wifi-types:channels-type",
          'generated-type': """YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..14', '17', '21', '25', '29', '33', '36', '37', '40', '41', '44', '45', '48', '49', '52', '53', '56', '57', '60', '61', '64', '65', '69', '73', '77', '81', '85', '89', '93', '97', '100', '101', '104', '105', '108', '109', '112', '113', '116', '117', '120', '121', '124', '125', '128', '129', '132', '133', '136', '137', '140', '141', '144', '145', '149', '153', '157', '161', '165', '169', '173', '177', '181', '185', '189', '193', '197', '201', '205', '209', '213', '217', '221', '225', '229', '233']})), is_leaf=False, yang_name="supported-channels", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='oc-wifi-types:channels-type', is_config=False)""",
        })

    self.__supported_channels = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_supported_channels(self):
    self.__supported_channels = YANGDynClass(unique=True, base=TypedListType(allowed_type=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..14', '17', '21', '25', '29', '33', '36', '37', '40', '41', '44', '45', '48', '49', '52', '53', '56', '57', '60', '61', '64', '65', '69', '73', '77', '81', '85', '89', '93', '97', '100', '101', '104', '105', '108', '109', '112', '113', '116', '117', '120', '121', '124', '125', '128', '129', '132', '133', '136', '137', '140', '141', '144', '145', '149', '153', '157', '161', '165', '169', '173', '177', '181', '185', '189', '193', '197', '201', '205', '209', '213', '217', '221', '225', '229', '233']})), is_leaf=False, yang_name="supported-channels", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='oc-wifi-types:channels-type', is_config=False)


  def _get_channel_change_reason(self):
    """
    Getter method for channel_change_reason, mapped from YANG variable /radios/radio/state/channel_change_reason (identityref)

    YANG Description: When an Access Point changes channels, this will
provide the reason that led to the change.
    """
    return self.__channel_change_reason
      
  def _set_channel_change_reason(self, v, load=False):
    """
    Setter method for channel_change_reason, mapped from YANG variable /radios/radio/state/channel_change_reason (identityref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_channel_change_reason is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_channel_change_reason() directly.

    YANG Description: When an Access Point changes channels, this will
provide the reason that led to the change.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'DFS': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:DFS': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:DFS': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'NOISE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:NOISE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:NOISE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'ERRORS': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:ERRORS': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:ERRORS': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'BETTER_CHANNEL': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:BETTER_CHANNEL': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:BETTER_CHANNEL': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},), is_leaf=True, yang_name="channel-change-reason", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='identityref', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """channel_change_reason must be of a type compatible with identityref""",
          'defined-type': "openconfig-wifi-phy:identityref",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'DFS': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:DFS': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:DFS': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'NOISE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:NOISE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:NOISE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'ERRORS': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:ERRORS': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:ERRORS': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'BETTER_CHANNEL': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:BETTER_CHANNEL': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:BETTER_CHANNEL': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},), is_leaf=True, yang_name="channel-change-reason", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='identityref', is_config=False)""",
        })

    self.__channel_change_reason = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_channel_change_reason(self):
    self.__channel_change_reason = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'DFS': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:DFS': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:DFS': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'NOISE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:NOISE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:NOISE': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'ERRORS': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:ERRORS': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:ERRORS': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'BETTER_CHANNEL': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi-types:BETTER_CHANNEL': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}, 'oc-wifi:BETTER_CHANNEL': {'@module': 'openconfig-wifi-types', '@namespace': 'http://openconfig.net/yang/wifi/wifi-types'}},), is_leaf=True, yang_name="channel-change-reason", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='identityref', is_config=False)


  def _get_total_channel_utilization(self):
    """
    Getter method for total_channel_utilization, mapped from YANG variable /radios/radio/state/total_channel_utilization (oc-types:percentage)

    YANG Description: Total 802.11 and non-802.11 channel utilization on this
Radio. The total channel utilization should include all time
periods the AP spent actively receiving and transmitting
802.11 frames, and also include all time spent with clear
channel assessment (CCA) in a busy state.
    """
    return self.__total_channel_utilization
      
  def _set_total_channel_utilization(self, v, load=False):
    """
    Setter method for total_channel_utilization, mapped from YANG variable /radios/radio/state/total_channel_utilization (oc-types:percentage)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_total_channel_utilization is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_total_channel_utilization() directly.

    YANG Description: Total 802.11 and non-802.11 channel utilization on this
Radio. The total channel utilization should include all time
periods the AP spent actively receiving and transmitting
802.11 frames, and also include all time spent with clear
channel assessment (CCA) in a busy state.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="total-channel-utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='oc-types:percentage', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """total_channel_utilization must be of a type compatible with oc-types:percentage""",
          'defined-type': "oc-types:percentage",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="total-channel-utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='oc-types:percentage', is_config=False)""",
        })

    self.__total_channel_utilization = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_total_channel_utilization(self):
    self.__total_channel_utilization = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="total-channel-utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='oc-types:percentage', is_config=False)


  def _get_rx_dot11_channel_utilization(self):
    """
    Getter method for rx_dot11_channel_utilization, mapped from YANG variable /radios/radio/state/rx_dot11_channel_utilization (oc-types:percentage)

    YANG Description: Received channel-utilization due to any 802.11 frames, destined to this
radio or otherwise.
    """
    return self.__rx_dot11_channel_utilization
      
  def _set_rx_dot11_channel_utilization(self, v, load=False):
    """
    Setter method for rx_dot11_channel_utilization, mapped from YANG variable /radios/radio/state/rx_dot11_channel_utilization (oc-types:percentage)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_dot11_channel_utilization is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_dot11_channel_utilization() directly.

    YANG Description: Received channel-utilization due to any 802.11 frames, destined to this
radio or otherwise.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="rx-dot11-channel-utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='oc-types:percentage', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_dot11_channel_utilization must be of a type compatible with oc-types:percentage""",
          'defined-type': "oc-types:percentage",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="rx-dot11-channel-utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='oc-types:percentage', is_config=False)""",
        })

    self.__rx_dot11_channel_utilization = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rx_dot11_channel_utilization(self):
    self.__rx_dot11_channel_utilization = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="rx-dot11-channel-utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='oc-types:percentage', is_config=False)


  def _get_rx_noise_channel_utilization(self):
    """
    Getter method for rx_noise_channel_utilization, mapped from YANG variable /radios/radio/state/rx_noise_channel_utilization (oc-types:percentage)

    YANG Description: Received channel-utilization percentage due to noise.
    """
    return self.__rx_noise_channel_utilization
      
  def _set_rx_noise_channel_utilization(self, v, load=False):
    """
    Setter method for rx_noise_channel_utilization, mapped from YANG variable /radios/radio/state/rx_noise_channel_utilization (oc-types:percentage)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_noise_channel_utilization is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_noise_channel_utilization() directly.

    YANG Description: Received channel-utilization percentage due to noise.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="rx-noise-channel-utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='oc-types:percentage', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_noise_channel_utilization must be of a type compatible with oc-types:percentage""",
          'defined-type': "oc-types:percentage",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="rx-noise-channel-utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='oc-types:percentage', is_config=False)""",
        })

    self.__rx_noise_channel_utilization = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rx_noise_channel_utilization(self):
    self.__rx_noise_channel_utilization = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="rx-noise-channel-utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='oc-types:percentage', is_config=False)


  def _get_tx_dot11_channel_utilization(self):
    """
    Getter method for tx_dot11_channel_utilization, mapped from YANG variable /radios/radio/state/tx_dot11_channel_utilization (oc-types:percentage)

    YANG Description: Transmit channel-utilization percentage.
    """
    return self.__tx_dot11_channel_utilization
      
  def _set_tx_dot11_channel_utilization(self, v, load=False):
    """
    Setter method for tx_dot11_channel_utilization, mapped from YANG variable /radios/radio/state/tx_dot11_channel_utilization (oc-types:percentage)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tx_dot11_channel_utilization is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tx_dot11_channel_utilization() directly.

    YANG Description: Transmit channel-utilization percentage.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="tx-dot11-channel-utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='oc-types:percentage', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tx_dot11_channel_utilization must be of a type compatible with oc-types:percentage""",
          'defined-type': "oc-types:percentage",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="tx-dot11-channel-utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='oc-types:percentage', is_config=False)""",
        })

    self.__tx_dot11_channel_utilization = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_tx_dot11_channel_utilization(self):
    self.__tx_dot11_channel_utilization = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="tx-dot11-channel-utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='oc-types:percentage', is_config=False)


  def _get_obss_rx(self):
    """
    Getter method for obss_rx, mapped from YANG variable /radios/radio/state/obss_rx (oc-types:percentage)

    YANG Description: Received channel utilization due to 802.11 frames NOT destined to a
BSS on this AP ('Overlapping BSS').
    """
    return self.__obss_rx
      
  def _set_obss_rx(self, v, load=False):
    """
    Setter method for obss_rx, mapped from YANG variable /radios/radio/state/obss_rx (oc-types:percentage)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_obss_rx is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_obss_rx() directly.

    YANG Description: Received channel utilization due to 802.11 frames NOT destined to a
BSS on this AP ('Overlapping BSS').
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="obss-rx", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='oc-types:percentage', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """obss_rx must be of a type compatible with oc-types:percentage""",
          'defined-type': "oc-types:percentage",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="obss-rx", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='oc-types:percentage', is_config=False)""",
        })

    self.__obss_rx = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_obss_rx(self):
    self.__obss_rx = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['0..100']}), is_leaf=True, yang_name="obss-rx", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='oc-types:percentage', is_config=False)


  def _get_counters(self):
    """
    Getter method for counters, mapped from YANG variable /radios/radio/state/counters (container)

    YANG Description: A collection of radio-related statistics objects.
    """
    return self.__counters
      
  def _set_counters(self, v, load=False):
    """
    Setter method for counters, mapped from YANG variable /radios/radio/state/counters (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_counters is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_counters() directly.

    YANG Description: A collection of radio-related statistics objects.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_counters_openconfig_wifi_phy__radios_radio_state_counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='container', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """counters must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_counters_openconfig_wifi_phy__radios_radio_state_counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='container', is_config=False)""",
        })

    self.__counters = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_counters(self):
    self.__counters = YANGDynClass(base=yc_counters_openconfig_wifi_phy__radios_radio_state_counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='container', is_config=False)

  id = __builtin__.property(_get_id)
  operating_frequency = __builtin__.property(_get_operating_frequency)
  enabled = __builtin__.property(_get_enabled)
  transmit_power = __builtin__.property(_get_transmit_power)
  transmit_eirp = __builtin__.property(_get_transmit_eirp)
  channel = __builtin__.property(_get_channel)
  channel_width = __builtin__.property(_get_channel_width)
  bss_coloring = __builtin__.property(_get_bss_coloring)
  bss_color_id = __builtin__.property(_get_bss_color_id)
  dca = __builtin__.property(_get_dca)
  allowed_channels = __builtin__.property(_get_allowed_channels)
  dtp = __builtin__.property(_get_dtp)
  dtp_min = __builtin__.property(_get_dtp_min)
  dtp_max = __builtin__.property(_get_dtp_max)
  antenna_gain = __builtin__.property(_get_antenna_gain)
  scanning = __builtin__.property(_get_scanning)
  scanning_interval = __builtin__.property(_get_scanning_interval)
  scanning_dwell_time = __builtin__.property(_get_scanning_dwell_time)
  scanning_defer_clients = __builtin__.property(_get_scanning_defer_clients)
  scanning_defer_traffic = __builtin__.property(_get_scanning_defer_traffic)
  base_radio_mac = __builtin__.property(_get_base_radio_mac)
  allowed_regulatory_channels = __builtin__.property(_get_allowed_regulatory_channels)
  software_selectable = __builtin__.property(_get_software_selectable)
  dfs_hit_time = __builtin__.property(_get_dfs_hit_time)
  supported_channels = __builtin__.property(_get_supported_channels)
  channel_change_reason = __builtin__.property(_get_channel_change_reason)
  total_channel_utilization = __builtin__.property(_get_total_channel_utilization)
  rx_dot11_channel_utilization = __builtin__.property(_get_rx_dot11_channel_utilization)
  rx_noise_channel_utilization = __builtin__.property(_get_rx_noise_channel_utilization)
  tx_dot11_channel_utilization = __builtin__.property(_get_tx_dot11_channel_utilization)
  obss_rx = __builtin__.property(_get_obss_rx)
  counters = __builtin__.property(_get_counters)


  _pyangbind_elements = OrderedDict([('id', id), ('operating_frequency', operating_frequency), ('enabled', enabled), ('transmit_power', transmit_power), ('transmit_eirp', transmit_eirp), ('channel', channel), ('channel_width', channel_width), ('bss_coloring', bss_coloring), ('bss_color_id', bss_color_id), ('dca', dca), ('allowed_channels', allowed_channels), ('dtp', dtp), ('dtp_min', dtp_min), ('dtp_max', dtp_max), ('antenna_gain', antenna_gain), ('scanning', scanning), ('scanning_interval', scanning_interval), ('scanning_dwell_time', scanning_dwell_time), ('scanning_defer_clients', scanning_defer_clients), ('scanning_defer_traffic', scanning_defer_traffic), ('base_radio_mac', base_radio_mac), ('allowed_regulatory_channels', allowed_regulatory_channels), ('software_selectable', software_selectable), ('dfs_hit_time', dfs_hit_time), ('supported_channels', supported_channels), ('channel_change_reason', channel_change_reason), ('total_channel_utilization', total_channel_utilization), ('rx_dot11_channel_utilization', rx_dot11_channel_utilization), ('rx_noise_channel_utilization', rx_noise_channel_utilization), ('tx_dot11_channel_utilization', tx_dot11_channel_utilization), ('obss_rx', obss_rx), ('counters', counters), ])


class yc_state_openconfig_wifi_phy__radios_radio_neighbors_neighbor_state(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-wifi-phy - based on the path /radios/radio/neighbors/neighbor/state. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: State container for RF neighbors.
  """
  __slots__ = ('_path_helper', '_extmethods', '__bssid','__ssid','__rssi','__channel','__primary_channel','__bss_color_id','__last_seen','__opmode',)

  _yang_name = 'state'
  _yang_namespace = 'http://openconfig.net/yang/wifi-phy'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__bssid = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="bssid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='oc-yang:mac-address', is_config=False)
    self.__ssid = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="ssid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='string', is_config=False)
    self.__rssi = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), is_leaf=True, yang_name="rssi", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='int8', is_config=False)
    self.__channel = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="channel", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint16', is_config=False)
    self.__primary_channel = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="primary-channel", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint16', is_config=False)
    self.__bss_color_id = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..63']}), is_leaf=True, yang_name="bss-color-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint8', is_config=False)
    self.__last_seen = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-seen", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='oc-types:timeticks64', is_config=False)
    self.__opmode = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OPEN': {}, 'WPA2_PERSONAL': {}, 'WPA2_ENTERPRISE': {}, 'WPA_PERSONAL': {}, 'WPA_ENTERPRISE': {}, 'WEP': {}, 'ENHANCED_OPEN': {}, 'WPA3_SAE': {}, 'WPA3_ENTERPRISE': {}, 'WPA3_ENTERPRISE_192_BIT': {}},), is_leaf=True, yang_name="opmode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='enumeration', 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 ['radios', 'radio', 'neighbors', 'neighbor', 'state']

  def _get_bssid(self):
    """
    Getter method for bssid, mapped from YANG variable /radios/radio/neighbors/neighbor/state/bssid (oc-yang:mac-address)

    YANG Description: Neighboring BSSID.
    """
    return self.__bssid
      
  def _set_bssid(self, v, load=False):
    """
    Setter method for bssid, mapped from YANG variable /radios/radio/neighbors/neighbor/state/bssid (oc-yang:mac-address)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_bssid is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_bssid() directly.

    YANG Description: Neighboring BSSID.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="bssid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='oc-yang:mac-address', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """bssid must be of a type compatible with oc-yang:mac-address""",
          'defined-type': "oc-yang:mac-address",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="bssid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='oc-yang:mac-address', is_config=False)""",
        })

    self.__bssid = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_bssid(self):
    self.__bssid = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="bssid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='oc-yang:mac-address', is_config=False)


  def _get_ssid(self):
    """
    Getter method for ssid, mapped from YANG variable /radios/radio/neighbors/neighbor/state/ssid (string)

    YANG Description: The SSID of this neighboring BSSID.
    """
    return self.__ssid
      
  def _set_ssid(self, v, load=False):
    """
    Setter method for ssid, mapped from YANG variable /radios/radio/neighbors/neighbor/state/ssid (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ssid is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ssid() directly.

    YANG Description: The SSID of this neighboring BSSID.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="ssid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='string', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """ssid must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="ssid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='string', is_config=False)""",
        })

    self.__ssid = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_ssid(self):
    self.__ssid = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="ssid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='string', is_config=False)


  def _get_rssi(self):
    """
    Getter method for rssi, mapped from YANG variable /radios/radio/neighbors/neighbor/state/rssi (int8)

    YANG Description: The RSSI of this neighboring BSSID, expressed as a negative number.
    """
    return self.__rssi
      
  def _set_rssi(self, v, load=False):
    """
    Setter method for rssi, mapped from YANG variable /radios/radio/neighbors/neighbor/state/rssi (int8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rssi is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rssi() directly.

    YANG Description: The RSSI of this neighboring BSSID, expressed as a negative number.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), is_leaf=True, yang_name="rssi", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='int8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rssi must be of a type compatible with int8""",
          'defined-type': "int8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), is_leaf=True, yang_name="rssi", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='int8', is_config=False)""",
        })

    self.__rssi = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_rssi(self):
    self.__rssi = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['-128..127']}, int_size=8), is_leaf=True, yang_name="rssi", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='int8', is_config=False)


  def _get_channel(self):
    """
    Getter method for channel, mapped from YANG variable /radios/radio/neighbors/neighbor/state/channel (uint16)

    YANG Description: The channel of this neighboring BSSID. This is to utilize
802.11ac nomenclature. For example, 40MHz channel 36-40
represented as channel 38. The primary-channel leaf is used to
identify the primary 20MHz channel of a bonded channel.
    """
    return self.__channel
      
  def _set_channel(self, v, load=False):
    """
    Setter method for channel, mapped from YANG variable /radios/radio/neighbors/neighbor/state/channel (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_channel is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_channel() directly.

    YANG Description: The channel of this neighboring BSSID. This is to utilize
802.11ac nomenclature. For example, 40MHz channel 36-40
represented as channel 38. The primary-channel leaf is used to
identify the primary 20MHz channel of a bonded channel.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="channel", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint16', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """channel must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="channel", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint16', is_config=False)""",
        })

    self.__channel = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_channel(self):
    self.__channel = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="channel", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint16', is_config=False)


  def _get_primary_channel(self):
    """
    Getter method for primary_channel, mapped from YANG variable /radios/radio/neighbors/neighbor/state/primary_channel (uint16)

    YANG Description: The primary 20MHz channel, if the neighbor is operating on
bonded channel.
    """
    return self.__primary_channel
      
  def _set_primary_channel(self, v, load=False):
    """
    Setter method for primary_channel, mapped from YANG variable /radios/radio/neighbors/neighbor/state/primary_channel (uint16)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_primary_channel is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_primary_channel() directly.

    YANG Description: The primary 20MHz channel, if the neighbor is operating on
bonded channel.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="primary-channel", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint16', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """primary_channel must be of a type compatible with uint16""",
          'defined-type': "uint16",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="primary-channel", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint16', is_config=False)""",
        })

    self.__primary_channel = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_primary_channel(self):
    self.__primary_channel = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="primary-channel", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint16', is_config=False)


  def _get_bss_color_id(self):
    """
    Getter method for bss_color_id, mapped from YANG variable /radios/radio/neighbors/neighbor/state/bss_color_id (uint8)

    YANG Description: Numerical identifier of the BSS.
    """
    return self.__bss_color_id
      
  def _set_bss_color_id(self, v, load=False):
    """
    Setter method for bss_color_id, mapped from YANG variable /radios/radio/neighbors/neighbor/state/bss_color_id (uint8)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_bss_color_id is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_bss_color_id() directly.

    YANG Description: Numerical identifier of the BSS.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..63']}), is_leaf=True, yang_name="bss-color-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint8', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """bss_color_id must be of a type compatible with uint8""",
          'defined-type': "uint8",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..63']}), is_leaf=True, yang_name="bss-color-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint8', is_config=False)""",
        })

    self.__bss_color_id = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_bss_color_id(self):
    self.__bss_color_id = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), restriction_dict={'range': ['1..63']}), is_leaf=True, yang_name="bss-color-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='uint8', is_config=False)


  def _get_last_seen(self):
    """
    Getter method for last_seen, mapped from YANG variable /radios/radio/neighbors/neighbor/state/last_seen (oc-types:timeticks64)

    YANG Description: Reports the time this reading was taken, indicating when
this neighbor was last seen. If a cache is used, it MUST be
updated instantly when a neighbor BSS changes channels, or a
new BSS is seen. The value is the timestamp in nanoseconds
relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC).
    """
    return self.__last_seen
      
  def _set_last_seen(self, v, load=False):
    """
    Setter method for last_seen, mapped from YANG variable /radios/radio/neighbors/neighbor/state/last_seen (oc-types:timeticks64)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_last_seen is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_last_seen() directly.

    YANG Description: Reports the time this reading was taken, indicating when
this neighbor was last seen. If a cache is used, it MUST be
updated instantly when a neighbor BSS changes channels, or a
new BSS is seen. The value is the timestamp in nanoseconds
relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC).
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-seen", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='oc-types:timeticks64', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """last_seen must be of a type compatible with oc-types:timeticks64""",
          'defined-type': "oc-types:timeticks64",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-seen", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='oc-types:timeticks64', is_config=False)""",
        })

    self.__last_seen = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_last_seen(self):
    self.__last_seen = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-seen", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='oc-types:timeticks64', is_config=False)


  def _get_opmode(self):
    """
    Getter method for opmode, mapped from YANG variable /radios/radio/neighbors/neighbor/state/opmode (enumeration)

    YANG Description: Operating mode of the BSS.
    """
    return self.__opmode
      
  def _set_opmode(self, v, load=False):
    """
    Setter method for opmode, mapped from YANG variable /radios/radio/neighbors/neighbor/state/opmode (enumeration)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_opmode is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_opmode() directly.

    YANG Description: Operating mode of the BSS.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OPEN': {}, 'WPA2_PERSONAL': {}, 'WPA2_ENTERPRISE': {}, 'WPA_PERSONAL': {}, 'WPA_ENTERPRISE': {}, 'WEP': {}, 'ENHANCED_OPEN': {}, 'WPA3_SAE': {}, 'WPA3_ENTERPRISE': {}, 'WPA3_ENTERPRISE_192_BIT': {}},), is_leaf=True, yang_name="opmode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='enumeration', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """opmode must be of a type compatible with enumeration""",
          'defined-type': "openconfig-wifi-phy:enumeration",
          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OPEN': {}, 'WPA2_PERSONAL': {}, 'WPA2_ENTERPRISE': {}, 'WPA_PERSONAL': {}, 'WPA_ENTERPRISE': {}, 'WEP': {}, 'ENHANCED_OPEN': {}, 'WPA3_SAE': {}, 'WPA3_ENTERPRISE': {}, 'WPA3_ENTERPRISE_192_BIT': {}},), is_leaf=True, yang_name="opmode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='enumeration', is_config=False)""",
        })

    self.__opmode = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_opmode(self):
    self.__opmode = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'OPEN': {}, 'WPA2_PERSONAL': {}, 'WPA2_ENTERPRISE': {}, 'WPA_PERSONAL': {}, 'WPA_ENTERPRISE': {}, 'WEP': {}, 'ENHANCED_OPEN': {}, 'WPA3_SAE': {}, 'WPA3_ENTERPRISE': {}, 'WPA3_ENTERPRISE_192_BIT': {}},), is_leaf=True, yang_name="opmode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='enumeration', is_config=False)

  bssid = __builtin__.property(_get_bssid)
  ssid = __builtin__.property(_get_ssid)
  rssi = __builtin__.property(_get_rssi)
  channel = __builtin__.property(_get_channel)
  primary_channel = __builtin__.property(_get_primary_channel)
  bss_color_id = __builtin__.property(_get_bss_color_id)
  last_seen = __builtin__.property(_get_last_seen)
  opmode = __builtin__.property(_get_opmode)


  _pyangbind_elements = OrderedDict([('bssid', bssid), ('ssid', ssid), ('rssi', rssi), ('channel', channel), ('primary_channel', primary_channel), ('bss_color_id', bss_color_id), ('last_seen', last_seen), ('opmode', opmode), ])


class yc_neighbor_openconfig_wifi_phy__radios_radio_neighbors_neighbor(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-wifi-phy - based on the path /radios/radio/neighbors/neighbor. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: The MAC address, or BSSID, of a neighbor, and
their corresponding RSSI.
  """
  __slots__ = ('_path_helper', '_extmethods', '__bssid','__state',)

  _yang_name = 'neighbor'
  _yang_namespace = 'http://openconfig.net/yang/wifi-phy'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__bssid = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="bssid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='leafref', is_config=False)
    self.__state = YANGDynClass(base=yc_state_openconfig_wifi_phy__radios_radio_neighbors_neighbor_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/wifi-phy', defining_module='openconfig-wifi-phy', 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 ['radios', 'radio', 'neighbors', 'neighbor']

  def _get_bssid(self):
    """
    Getter method for bssid, mapped from YANG variable /radios/radio/neighbors/neighbor/bssid (leafref)

    YANG Description: Reference to neighbor BSSID.
    """
    return self.__bssid
      
  def _set_bssid(self, v, load=False):
    """
    Setter method for bssid, mapped from YANG variable /radios/radio/neighbors/neighbor/bssid (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_bssid is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_bssid() directly.

    YANG Description: Reference to neighbor BSSID.
    """
    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="bssid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='leafref', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """bssid must be of a type compatible with leafref""",
          'defined-type': "leafref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="bssid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='leafref', is_config=False)""",
        })

    self.__bssid = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_bssid(self):
    self.__bssid = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="bssid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='leafref', is_config=False)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /radios/radio/neighbors/neighbor/state (container)

    YANG Description: State container for RF neighbors.
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /radios/radio/neighbors/neighbor/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 container for RF neighbors.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_wifi_phy__radios_radio_neighbors_neighbor_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/wifi-phy', defining_module='openconfig-wifi-phy', 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=yc_state_openconfig_wifi_phy__radios_radio_neighbors_neighbor_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/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='container', is_config=False)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_wifi_phy__radios_radio_neighbors_neighbor_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/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='container', is_config=False)

  bssid = __builtin__.property(_get_bssid)
  state = __builtin__.property(_get_state)


  _pyangbind_elements = OrderedDict([('bssid', bssid), ('state', state), ])


class yc_neighbors_openconfig_wifi_phy__radios_radio_neighbors(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-wifi-phy - based on the path /radios/radio/neighbors. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Top-level container for RF neighbors.
  """
  __slots__ = ('_path_helper', '_extmethods', '__neighbor',)

  _yang_name = 'neighbors'
  _yang_namespace = 'http://openconfig.net/yang/wifi-phy'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__neighbor = YANGDynClass(base=YANGListType("bssid",yc_neighbor_openconfig_wifi_phy__radios_radio_neighbors_neighbor, yang_name="neighbor", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='bssid', extensions=None), is_container='list', yang_name="neighbor", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='list', is_config=True)

    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 ['radios', 'radio', 'neighbors']

  def _get_neighbor(self):
    """
    Getter method for neighbor, mapped from YANG variable /radios/radio/neighbors/neighbor (list)

    YANG Description: The MAC address, or BSSID, of a neighbor, and
their corresponding RSSI.
    """
    return self.__neighbor
      
  def _set_neighbor(self, v, load=False):
    """
    Setter method for neighbor, mapped from YANG variable /radios/radio/neighbors/neighbor (list)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_neighbor is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_neighbor() directly.

    YANG Description: The MAC address, or BSSID, of a neighbor, and
their corresponding RSSI.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGListType("bssid",yc_neighbor_openconfig_wifi_phy__radios_radio_neighbors_neighbor, yang_name="neighbor", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='bssid', extensions=None), is_container='list', yang_name="neighbor", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='list', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """neighbor must be of a type compatible with list""",
          'defined-type': "list",
          'generated-type': """YANGDynClass(base=YANGListType("bssid",yc_neighbor_openconfig_wifi_phy__radios_radio_neighbors_neighbor, yang_name="neighbor", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='bssid', extensions=None), is_container='list', yang_name="neighbor", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='list', is_config=True)""",
        })

    self.__neighbor = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_neighbor(self):
    self.__neighbor = YANGDynClass(base=YANGListType("bssid",yc_neighbor_openconfig_wifi_phy__radios_radio_neighbors_neighbor, yang_name="neighbor", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='bssid', extensions=None), is_container='list', yang_name="neighbor", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='list', is_config=True)

  neighbor = __builtin__.property(_get_neighbor, _set_neighbor)


  _pyangbind_elements = OrderedDict([('neighbor', neighbor), ])


class yc_radio_openconfig_wifi_phy__radios_radio(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-wifi-phy - based on the path /radios/radio. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: The list of radios on the device.
  """
  __slots__ = ('_path_helper', '_extmethods', '__id','__operating_frequency','__config','__state','__neighbors',)

  _yang_name = 'radio'
  _yang_namespace = 'http://openconfig.net/yang/wifi-phy'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__id = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='leafref', is_config=True)
    self.__operating_frequency = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="operating-frequency", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='leafref', is_config=True)
    self.__config = YANGDynClass(base=yc_config_openconfig_wifi_phy__radios_radio_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='container', is_config=True)
    self.__state = YANGDynClass(base=yc_state_openconfig_wifi_phy__radios_radio_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/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='container', is_config=True)
    self.__neighbors = YANGDynClass(base=yc_neighbors_openconfig_wifi_phy__radios_radio_neighbors, is_container='container', yang_name="neighbors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='container', is_config=True)

    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 ['radios', 'radio']

  def _get_id(self):
    """
    Getter method for id, mapped from YANG variable /radios/radio/id (leafref)

    YANG Description: List key referencing the configured radio id.
    """
    return self.__id
      
  def _set_id(self, v, load=False):
    """
    Setter method for id, mapped from YANG variable /radios/radio/id (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_id is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_id() directly.

    YANG Description: List key referencing the configured radio id.
    """
    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="id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='leafref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """id must be of a type compatible with leafref""",
          'defined-type': "leafref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='leafref', is_config=True)""",
        })

    self.__id = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_id(self):
    self.__id = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='leafref', is_config=True)


  def _get_operating_frequency(self):
    """
    Getter method for operating_frequency, mapped from YANG variable /radios/radio/operating_frequency (leafref)

    YANG Description: List key referencing the radio operating-frequency.
    """
    return self.__operating_frequency
      
  def _set_operating_frequency(self, v, load=False):
    """
    Setter method for operating_frequency, mapped from YANG variable /radios/radio/operating_frequency (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_operating_frequency is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_operating_frequency() directly.

    YANG Description: List key referencing the radio operating-frequency.
    """
    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="operating-frequency", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='leafref', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """operating_frequency must be of a type compatible with leafref""",
          'defined-type': "leafref",
          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="operating-frequency", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='leafref', is_config=True)""",
        })

    self.__operating_frequency = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_operating_frequency(self):
    self.__operating_frequency = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="operating-frequency", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='leafref', is_config=True)


  def _get_config(self):
    """
    Getter method for config, mapped from YANG variable /radios/radio/config (container)

    YANG Description: Configurable items at the global, radio interface
level.
    """
    return self.__config
      
  def _set_config(self, v, load=False):
    """
    Setter method for config, mapped from YANG variable /radios/radio/config (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_config is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_config() directly.

    YANG Description: Configurable items at the global, radio interface
level.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_config_openconfig_wifi_phy__radios_radio_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """config must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_config_openconfig_wifi_phy__radios_radio_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='container', is_config=True)""",
        })

    self.__config = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_config(self):
    self.__config = YANGDynClass(base=yc_config_openconfig_wifi_phy__radios_radio_config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='container', is_config=True)


  def _get_state(self):
    """
    Getter method for state, mapped from YANG variable /radios/radio/state (container)

    YANG Description: Operational state data at the global radio level.
    """
    return self.__state
      
  def _set_state(self, v, load=False):
    """
    Setter method for state, mapped from YANG variable /radios/radio/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: Operational state data at the global radio level.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_state_openconfig_wifi_phy__radios_radio_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/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """state must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_state_openconfig_wifi_phy__radios_radio_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/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='container', is_config=True)""",
        })

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

  def _unset_state(self):
    self.__state = YANGDynClass(base=yc_state_openconfig_wifi_phy__radios_radio_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/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='container', is_config=True)


  def _get_neighbors(self):
    """
    Getter method for neighbors, mapped from YANG variable /radios/radio/neighbors (container)

    YANG Description: Top-level container for RF neighbors.
    """
    return self.__neighbors
      
  def _set_neighbors(self, v, load=False):
    """
    Setter method for neighbors, mapped from YANG variable /radios/radio/neighbors (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_neighbors is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_neighbors() directly.

    YANG Description: Top-level container for RF neighbors.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_neighbors_openconfig_wifi_phy__radios_radio_neighbors, is_container='container', yang_name="neighbors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """neighbors must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_neighbors_openconfig_wifi_phy__radios_radio_neighbors, is_container='container', yang_name="neighbors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='container', is_config=True)""",
        })

    self.__neighbors = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_neighbors(self):
    self.__neighbors = YANGDynClass(base=yc_neighbors_openconfig_wifi_phy__radios_radio_neighbors, is_container='container', yang_name="neighbors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='container', is_config=True)

  id = __builtin__.property(_get_id, _set_id)
  operating_frequency = __builtin__.property(_get_operating_frequency, _set_operating_frequency)
  config = __builtin__.property(_get_config, _set_config)
  state = __builtin__.property(_get_state, _set_state)
  neighbors = __builtin__.property(_get_neighbors, _set_neighbors)


  _pyangbind_elements = OrderedDict([('id', id), ('operating_frequency', operating_frequency), ('config', config), ('state', state), ('neighbors', neighbors), ])


class yc_radios_openconfig_wifi_phy__radios(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-wifi-phy - based on the path /radios. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Top level container for radios, including configuration
and state data.
  """
  __slots__ = ('_path_helper', '_extmethods', '__radio',)

  _yang_name = 'radios'
  _yang_namespace = 'http://openconfig.net/yang/wifi-phy'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__radio = YANGDynClass(base=YANGListType("id operating_frequency",yc_radio_openconfig_wifi_phy__radios_radio, yang_name="radio", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='id operating-frequency', extensions=None), is_container='list', yang_name="radio", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='list', is_config=True)

    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 ['radios']

  def _get_radio(self):
    """
    Getter method for radio, mapped from YANG variable /radios/radio (list)

    YANG Description: The list of radios on the device.
    """
    return self.__radio
      
  def _set_radio(self, v, load=False):
    """
    Setter method for radio, mapped from YANG variable /radios/radio (list)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_radio is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_radio() directly.

    YANG Description: The list of radios on the device.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGListType("id operating_frequency",yc_radio_openconfig_wifi_phy__radios_radio, yang_name="radio", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='id operating-frequency', extensions=None), is_container='list', yang_name="radio", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='list', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """radio must be of a type compatible with list""",
          'defined-type': "list",
          'generated-type': """YANGDynClass(base=YANGListType("id operating_frequency",yc_radio_openconfig_wifi_phy__radios_radio, yang_name="radio", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='id operating-frequency', extensions=None), is_container='list', yang_name="radio", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='list', is_config=True)""",
        })

    self.__radio = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_radio(self):
    self.__radio = YANGDynClass(base=YANGListType("id operating_frequency",yc_radio_openconfig_wifi_phy__radios_radio, yang_name="radio", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='id operating-frequency', extensions=None), is_container='list', yang_name="radio", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='list', is_config=True)

  radio = __builtin__.property(_get_radio, _set_radio)


  _pyangbind_elements = OrderedDict([('radio', radio), ])


class openconfig_wifi_phy(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-wifi-phy - based on the path /openconfig-wifi-phy. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Model for managing PHY layer configuration of Radio interfaces.
  """
  __slots__ = ('_path_helper', '_extmethods', '__radios',)

  _yang_name = 'openconfig-wifi-phy'
  _yang_namespace = 'http://openconfig.net/yang/wifi-phy'

  _pybind_generated_by = 'container'

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

    self._path_helper = False

    self._extmethods = False
    self.__radios = YANGDynClass(base=yc_radios_openconfig_wifi_phy__radios, is_container='container', yang_name="radios", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='container', is_config=True)

    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 []

  def _get_radios(self):
    """
    Getter method for radios, mapped from YANG variable /radios (container)

    YANG Description: Top level container for radios, including configuration
and state data.
    """
    return self.__radios
      
  def _set_radios(self, v, load=False):
    """
    Setter method for radios, mapped from YANG variable /radios (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_radios is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_radios() directly.

    YANG Description: Top level container for radios, including configuration
and state data.
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=yc_radios_openconfig_wifi_phy__radios, is_container='container', yang_name="radios", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='container', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """radios must be of a type compatible with container""",
          'defined-type': "container",
          'generated-type': """YANGDynClass(base=yc_radios_openconfig_wifi_phy__radios, is_container='container', yang_name="radios", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='container', is_config=True)""",
        })

    self.__radios = t
    if hasattr(self, '_set'):
      self._set()

  def _unset_radios(self):
    self.__radios = YANGDynClass(base=yc_radios_openconfig_wifi_phy__radios, is_container='container', yang_name="radios", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/wifi-phy', defining_module='openconfig-wifi-phy', yang_type='container', is_config=True)

  radios = __builtin__.property(_get_radios, _set_radios)


  _pyangbind_elements = OrderedDict([('radios', radios), ])


class openconfig_wifi_types(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-wifi-types - based on the path /openconfig-wifi-types. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: This module contains a set of WiFi-specific type definitions
that are used in the openconfig-wifi modules. It can be
imported by any module to make use of these types.
  """
  _pyangbind_elements = {}

  

