
from operator import attrgetter
import pyangbind.lib.xpathhelper as xpathhelper
from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType, RestrictedClassType, TypedListType
from pyangbind.lib.yangtypes import YANGBool, YANGListType, YANGDynClass, ReferenceType
from pyangbind.lib.base import PybindBase
from decimal import Decimal
from bitarray import bitarray
import __builtin__
class slm_stats_session_history_detailed(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module brocade-dot1ag-operational - based on the path /cfm-state/slm/slm-stats-session-detailed/slm-stats-session-history-detailed. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Detailed display of SLM statistics for history
  """
  __slots__ = ('_pybind_generated_by', '_path_helper', '_yang_name', '_rest_name', '_extmethods', '__suspect_status','__start_time','__elapsed_time','__tx_fwd','__rx_fwd','__tx_bwd','__rx_bwd','__test_profile_name','__intiated_meas','__completed_meas','__flr_min_ratio','__flr_max_ratio','__flr_avg_ratio','__blr_min_ratio','__blr_max_ratio','__blr_avg_ratio','__history_index','__session_index',)

  _yang_name = 'slm-stats-session-history-detailed'
  _rest_name = 'slm-stats-session-history-detailed'

  _pybind_generated_by = 'container'

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

    path_helper_ = kwargs.pop("path_helper", None)
    if path_helper_ is False:
      self._path_helper = False
    elif path_helper_ is not None and isinstance(path_helper_, xpathhelper.YANGPathHelper):
      self._path_helper = path_helper_
    elif hasattr(self, "_parent"):
      path_helper_ = getattr(self._parent, "_path_helper", False)
      self._path_helper = path_helper_
    else:
      self._path_helper = False

    extmethods = kwargs.pop("extmethods", None)
    if extmethods is False:
      self._extmethods = False
    elif extmethods is not None and isinstance(extmethods, dict):
      self._extmethods = extmethods
    elif hasattr(self, "_parent"):
      extmethods = getattr(self._parent, "_extmethods", None)
      self._extmethods = extmethods
    else:
      self._extmethods = False
    self.__flr_avg_ratio = YANGDynClass(base=unicode, is_leaf=True, yang_name="flr-avg-ratio", rest_name="flr-avg-ratio", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False)
    self.__tx_bwd = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="tx-bwd", rest_name="tx-bwd", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False)
    self.__rx_bwd = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="rx-bwd", rest_name="rx-bwd", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False)
    self.__flr_min_ratio = YANGDynClass(base=unicode, is_leaf=True, yang_name="flr-min-ratio", rest_name="flr-min-ratio", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False)
    self.__completed_meas = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="completed-meas", rest_name="completed-meas", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False)
    self.__intiated_meas = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="intiated-meas", rest_name="intiated-meas", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False)
    self.__suspect_status = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="suspect-status", rest_name="suspect-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='boolean', is_config=False)
    self.__blr_avg_ratio = YANGDynClass(base=unicode, is_leaf=True, yang_name="blr-avg-ratio", rest_name="blr-avg-ratio", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False)
    self.__test_profile_name = YANGDynClass(base=unicode, is_leaf=True, yang_name="test-profile-name", rest_name="test-profile-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False)
    self.__elapsed_time = YANGDynClass(base=unicode, is_leaf=True, yang_name="elapsed-time", rest_name="elapsed-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False)
    self.__blr_min_ratio = YANGDynClass(base=unicode, is_leaf=True, yang_name="blr-min-ratio", rest_name="blr-min-ratio", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False)
    self.__history_index = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="history-index", rest_name="history-index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False)
    self.__rx_fwd = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="rx-fwd", rest_name="rx-fwd", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False)
    self.__blr_max_ratio = YANGDynClass(base=unicode, is_leaf=True, yang_name="blr-max-ratio", rest_name="blr-max-ratio", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False)
    self.__session_index = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="session-index", rest_name="session-index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False)
    self.__flr_max_ratio = YANGDynClass(base=unicode, is_leaf=True, yang_name="flr-max-ratio", rest_name="flr-max-ratio", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False)
    self.__tx_fwd = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="tx-fwd", rest_name="tx-fwd", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False)
    self.__start_time = YANGDynClass(base=unicode, is_leaf=True, yang_name="start-time", rest_name="start-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', 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 [u'cfm-state', u'slm', u'slm-stats-session-detailed', u'slm-stats-session-history-detailed']

  def _rest_path(self):
    if hasattr(self, "_parent"):
      if self._rest_name:
        return self._parent._rest_path()+[self._rest_name]
      else:
        return self._parent._rest_path()
    else:
      return [u'cfm-state', u'slm', u'slm-stats-session-detailed', u'slm-stats-session-history-detailed']

  def _get_suspect_status(self):
    """
    Getter method for suspect_status, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/suspect_status (boolean)

    YANG Description: Suspect status
    """
    return self.__suspect_status
      
  def _set_suspect_status(self, v, load=False):
    """
    Setter method for suspect_status, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/suspect_status (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_suspect_status is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_suspect_status() directly.

    YANG Description: Suspect status
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="suspect-status", rest_name="suspect-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """suspect_status must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="suspect-status", rest_name="suspect-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='boolean', is_config=False)""",
        })

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

  def _unset_suspect_status(self):
    self.__suspect_status = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="suspect-status", rest_name="suspect-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='boolean', is_config=False)


  def _get_start_time(self):
    """
    Getter method for start_time, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/start_time (string)

    YANG Description: Start time
    """
    return self.__start_time
      
  def _set_start_time(self, v, load=False):
    """
    Setter method for start_time, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/start_time (string)
    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: Start time
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=unicode, is_leaf=True, yang_name="start-time", rest_name="start-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """start_time must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=unicode, is_leaf=True, yang_name="start-time", rest_name="start-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False)""",
        })

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

  def _unset_start_time(self):
    self.__start_time = YANGDynClass(base=unicode, is_leaf=True, yang_name="start-time", rest_name="start-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False)


  def _get_elapsed_time(self):
    """
    Getter method for elapsed_time, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/elapsed_time (string)

    YANG Description: Start time
    """
    return self.__elapsed_time
      
  def _set_elapsed_time(self, v, load=False):
    """
    Setter method for elapsed_time, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/elapsed_time (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_elapsed_time is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_elapsed_time() directly.

    YANG Description: Start time
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=unicode, is_leaf=True, yang_name="elapsed-time", rest_name="elapsed-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """elapsed_time must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=unicode, is_leaf=True, yang_name="elapsed-time", rest_name="elapsed-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False)""",
        })

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

  def _unset_elapsed_time(self):
    self.__elapsed_time = YANGDynClass(base=unicode, is_leaf=True, yang_name="elapsed-time", rest_name="elapsed-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False)


  def _get_tx_fwd(self):
    """
    Getter method for tx_fwd, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/tx_fwd (uint32)

    YANG Description: TX in Forward direction
    """
    return self.__tx_fwd
      
  def _set_tx_fwd(self, v, load=False):
    """
    Setter method for tx_fwd, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/tx_fwd (uint32)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tx_fwd is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tx_fwd() directly.

    YANG Description: TX in Forward direction
    """
    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="tx-fwd", rest_name="tx-fwd", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tx_fwd 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="tx-fwd", rest_name="tx-fwd", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False)""",
        })

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

  def _unset_tx_fwd(self):
    self.__tx_fwd = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="tx-fwd", rest_name="tx-fwd", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False)


  def _get_rx_fwd(self):
    """
    Getter method for rx_fwd, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/rx_fwd (uint32)

    YANG Description: RX in Forward direction
    """
    return self.__rx_fwd
      
  def _set_rx_fwd(self, v, load=False):
    """
    Setter method for rx_fwd, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/rx_fwd (uint32)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_fwd is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_fwd() directly.

    YANG Description: RX in Forward direction
    """
    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="rx-fwd", rest_name="rx-fwd", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_fwd 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="rx-fwd", rest_name="rx-fwd", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False)""",
        })

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

  def _unset_rx_fwd(self):
    self.__rx_fwd = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="rx-fwd", rest_name="rx-fwd", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False)


  def _get_tx_bwd(self):
    """
    Getter method for tx_bwd, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/tx_bwd (uint32)

    YANG Description: TX in Backward direction
    """
    return self.__tx_bwd
      
  def _set_tx_bwd(self, v, load=False):
    """
    Setter method for tx_bwd, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/tx_bwd (uint32)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tx_bwd is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tx_bwd() directly.

    YANG Description: TX in Backward direction
    """
    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="tx-bwd", rest_name="tx-bwd", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tx_bwd 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="tx-bwd", rest_name="tx-bwd", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False)""",
        })

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

  def _unset_tx_bwd(self):
    self.__tx_bwd = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="tx-bwd", rest_name="tx-bwd", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False)


  def _get_rx_bwd(self):
    """
    Getter method for rx_bwd, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/rx_bwd (uint32)

    YANG Description: RX in Backward direction
    """
    return self.__rx_bwd
      
  def _set_rx_bwd(self, v, load=False):
    """
    Setter method for rx_bwd, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/rx_bwd (uint32)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_bwd is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_bwd() directly.

    YANG Description: RX in Backward direction
    """
    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="rx-bwd", rest_name="rx-bwd", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_bwd 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="rx-bwd", rest_name="rx-bwd", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False)""",
        })

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

  def _unset_rx_bwd(self):
    self.__rx_bwd = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="rx-bwd", rest_name="rx-bwd", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False)


  def _get_test_profile_name(self):
    """
    Getter method for test_profile_name, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/test_profile_name (string)

    YANG Description: Test Profile name
    """
    return self.__test_profile_name
      
  def _set_test_profile_name(self, v, load=False):
    """
    Setter method for test_profile_name, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/test_profile_name (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_test_profile_name is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_test_profile_name() directly.

    YANG Description: Test Profile name
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=unicode, is_leaf=True, yang_name="test-profile-name", rest_name="test-profile-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """test_profile_name must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=unicode, is_leaf=True, yang_name="test-profile-name", rest_name="test-profile-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False)""",
        })

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

  def _unset_test_profile_name(self):
    self.__test_profile_name = YANGDynClass(base=unicode, is_leaf=True, yang_name="test-profile-name", rest_name="test-profile-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False)


  def _get_intiated_meas(self):
    """
    Getter method for intiated_meas, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/intiated_meas (uint32)

    YANG Description: Initiated Measurements
    """
    return self.__intiated_meas
      
  def _set_intiated_meas(self, v, load=False):
    """
    Setter method for intiated_meas, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/intiated_meas (uint32)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_intiated_meas is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_intiated_meas() directly.

    YANG Description: Initiated Measurements
    """
    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="intiated-meas", rest_name="intiated-meas", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """intiated_meas 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="intiated-meas", rest_name="intiated-meas", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False)""",
        })

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

  def _unset_intiated_meas(self):
    self.__intiated_meas = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="intiated-meas", rest_name="intiated-meas", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False)


  def _get_completed_meas(self):
    """
    Getter method for completed_meas, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/completed_meas (uint32)

    YANG Description: Completed Measurements
    """
    return self.__completed_meas
      
  def _set_completed_meas(self, v, load=False):
    """
    Setter method for completed_meas, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/completed_meas (uint32)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_completed_meas is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_completed_meas() directly.

    YANG Description: Completed Measurements
    """
    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="completed-meas", rest_name="completed-meas", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """completed_meas 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="completed-meas", rest_name="completed-meas", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False)""",
        })

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

  def _unset_completed_meas(self):
    self.__completed_meas = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="completed-meas", rest_name="completed-meas", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False)


  def _get_flr_min_ratio(self):
    """
    Getter method for flr_min_ratio, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/flr_min_ratio (string)

    YANG Description: Minumum Frame loss ratio in forward direction
    """
    return self.__flr_min_ratio
      
  def _set_flr_min_ratio(self, v, load=False):
    """
    Setter method for flr_min_ratio, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/flr_min_ratio (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_flr_min_ratio is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_flr_min_ratio() directly.

    YANG Description: Minumum Frame loss ratio in forward direction
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=unicode, is_leaf=True, yang_name="flr-min-ratio", rest_name="flr-min-ratio", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """flr_min_ratio must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=unicode, is_leaf=True, yang_name="flr-min-ratio", rest_name="flr-min-ratio", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False)""",
        })

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

  def _unset_flr_min_ratio(self):
    self.__flr_min_ratio = YANGDynClass(base=unicode, is_leaf=True, yang_name="flr-min-ratio", rest_name="flr-min-ratio", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False)


  def _get_flr_max_ratio(self):
    """
    Getter method for flr_max_ratio, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/flr_max_ratio (string)

    YANG Description: Maximum Frame loss ratio in forward direction
    """
    return self.__flr_max_ratio
      
  def _set_flr_max_ratio(self, v, load=False):
    """
    Setter method for flr_max_ratio, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/flr_max_ratio (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_flr_max_ratio is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_flr_max_ratio() directly.

    YANG Description: Maximum Frame loss ratio in forward direction
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=unicode, is_leaf=True, yang_name="flr-max-ratio", rest_name="flr-max-ratio", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """flr_max_ratio must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=unicode, is_leaf=True, yang_name="flr-max-ratio", rest_name="flr-max-ratio", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False)""",
        })

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

  def _unset_flr_max_ratio(self):
    self.__flr_max_ratio = YANGDynClass(base=unicode, is_leaf=True, yang_name="flr-max-ratio", rest_name="flr-max-ratio", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False)


  def _get_flr_avg_ratio(self):
    """
    Getter method for flr_avg_ratio, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/flr_avg_ratio (string)

    YANG Description: Average Frame loss ratio in forward direction
    """
    return self.__flr_avg_ratio
      
  def _set_flr_avg_ratio(self, v, load=False):
    """
    Setter method for flr_avg_ratio, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/flr_avg_ratio (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_flr_avg_ratio is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_flr_avg_ratio() directly.

    YANG Description: Average Frame loss ratio in forward direction
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=unicode, is_leaf=True, yang_name="flr-avg-ratio", rest_name="flr-avg-ratio", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """flr_avg_ratio must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=unicode, is_leaf=True, yang_name="flr-avg-ratio", rest_name="flr-avg-ratio", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False)""",
        })

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

  def _unset_flr_avg_ratio(self):
    self.__flr_avg_ratio = YANGDynClass(base=unicode, is_leaf=True, yang_name="flr-avg-ratio", rest_name="flr-avg-ratio", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False)


  def _get_blr_min_ratio(self):
    """
    Getter method for blr_min_ratio, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/blr_min_ratio (string)

    YANG Description: Minumum Frame loss ratio in backward direction
    """
    return self.__blr_min_ratio
      
  def _set_blr_min_ratio(self, v, load=False):
    """
    Setter method for blr_min_ratio, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/blr_min_ratio (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_blr_min_ratio is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_blr_min_ratio() directly.

    YANG Description: Minumum Frame loss ratio in backward direction
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=unicode, is_leaf=True, yang_name="blr-min-ratio", rest_name="blr-min-ratio", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """blr_min_ratio must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=unicode, is_leaf=True, yang_name="blr-min-ratio", rest_name="blr-min-ratio", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False)""",
        })

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

  def _unset_blr_min_ratio(self):
    self.__blr_min_ratio = YANGDynClass(base=unicode, is_leaf=True, yang_name="blr-min-ratio", rest_name="blr-min-ratio", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False)


  def _get_blr_max_ratio(self):
    """
    Getter method for blr_max_ratio, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/blr_max_ratio (string)

    YANG Description: Maximum Frame loss ratio in backward direction
    """
    return self.__blr_max_ratio
      
  def _set_blr_max_ratio(self, v, load=False):
    """
    Setter method for blr_max_ratio, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/blr_max_ratio (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_blr_max_ratio is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_blr_max_ratio() directly.

    YANG Description: Maximum Frame loss ratio in backward direction
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=unicode, is_leaf=True, yang_name="blr-max-ratio", rest_name="blr-max-ratio", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """blr_max_ratio must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=unicode, is_leaf=True, yang_name="blr-max-ratio", rest_name="blr-max-ratio", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False)""",
        })

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

  def _unset_blr_max_ratio(self):
    self.__blr_max_ratio = YANGDynClass(base=unicode, is_leaf=True, yang_name="blr-max-ratio", rest_name="blr-max-ratio", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False)


  def _get_blr_avg_ratio(self):
    """
    Getter method for blr_avg_ratio, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/blr_avg_ratio (string)

    YANG Description: Average Frame loss ratio in backward direction
    """
    return self.__blr_avg_ratio
      
  def _set_blr_avg_ratio(self, v, load=False):
    """
    Setter method for blr_avg_ratio, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/blr_avg_ratio (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_blr_avg_ratio is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_blr_avg_ratio() directly.

    YANG Description: Average Frame loss ratio in backward direction
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=unicode, is_leaf=True, yang_name="blr-avg-ratio", rest_name="blr-avg-ratio", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """blr_avg_ratio must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=unicode, is_leaf=True, yang_name="blr-avg-ratio", rest_name="blr-avg-ratio", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False)""",
        })

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

  def _unset_blr_avg_ratio(self):
    self.__blr_avg_ratio = YANGDynClass(base=unicode, is_leaf=True, yang_name="blr-avg-ratio", rest_name="blr-avg-ratio", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False)


  def _get_history_index(self):
    """
    Getter method for history_index, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/history_index (uint32)

    YANG Description: SLM history index for the session
    """
    return self.__history_index
      
  def _set_history_index(self, v, load=False):
    """
    Setter method for history_index, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/history_index (uint32)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_history_index is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_history_index() directly.

    YANG Description: SLM history index for the session
    """
    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=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="history-index", rest_name="history-index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """history_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), is_leaf=True, yang_name="history-index", rest_name="history-index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False)""",
        })

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

  def _unset_history_index(self):
    self.__history_index = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="history-index", rest_name="history-index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False)


  def _get_session_index(self):
    """
    Getter method for session_index, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/session_index (uint32)

    YANG Description: SLM session index
    """
    return self.__session_index
      
  def _set_session_index(self, v, load=False):
    """
    Setter method for session_index, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/session_index (uint32)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_session_index is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_session_index() directly.

    YANG Description: SLM session index
    """
    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="session-index", rest_name="session-index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """session_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), is_leaf=True, yang_name="session-index", rest_name="session-index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False)""",
        })

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

  def _unset_session_index(self):
    self.__session_index = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="session-index", rest_name="session-index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False)

  suspect_status = __builtin__.property(_get_suspect_status)
  start_time = __builtin__.property(_get_start_time)
  elapsed_time = __builtin__.property(_get_elapsed_time)
  tx_fwd = __builtin__.property(_get_tx_fwd)
  rx_fwd = __builtin__.property(_get_rx_fwd)
  tx_bwd = __builtin__.property(_get_tx_bwd)
  rx_bwd = __builtin__.property(_get_rx_bwd)
  test_profile_name = __builtin__.property(_get_test_profile_name)
  intiated_meas = __builtin__.property(_get_intiated_meas)
  completed_meas = __builtin__.property(_get_completed_meas)
  flr_min_ratio = __builtin__.property(_get_flr_min_ratio)
  flr_max_ratio = __builtin__.property(_get_flr_max_ratio)
  flr_avg_ratio = __builtin__.property(_get_flr_avg_ratio)
  blr_min_ratio = __builtin__.property(_get_blr_min_ratio)
  blr_max_ratio = __builtin__.property(_get_blr_max_ratio)
  blr_avg_ratio = __builtin__.property(_get_blr_avg_ratio)
  history_index = __builtin__.property(_get_history_index)
  session_index = __builtin__.property(_get_session_index)


  _pyangbind_elements = {'suspect_status': suspect_status, 'start_time': start_time, 'elapsed_time': elapsed_time, 'tx_fwd': tx_fwd, 'rx_fwd': rx_fwd, 'tx_bwd': tx_bwd, 'rx_bwd': rx_bwd, 'test_profile_name': test_profile_name, 'intiated_meas': intiated_meas, 'completed_meas': completed_meas, 'flr_min_ratio': flr_min_ratio, 'flr_max_ratio': flr_max_ratio, 'flr_avg_ratio': flr_avg_ratio, 'blr_min_ratio': blr_min_ratio, 'blr_max_ratio': blr_max_ratio, 'blr_avg_ratio': blr_avg_ratio, 'history_index': history_index, 'session_index': session_index, }




from operator import attrgetter
import pyangbind.lib.xpathhelper as xpathhelper
from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType, RestrictedClassType, TypedListType
from pyangbind.lib.yangtypes import YANGBool, YANGListType, YANGDynClass, ReferenceType
from pyangbind.lib.base import PybindBase
from decimal import Decimal
from bitarray import bitarray
import __builtin__
class slm_stats_session_history_detailed(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module brocade-dot1ag-operational - based on the path /cfm-state/slm/slm-stats-session-detailed/slm-stats-session-history-detailed. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Detailed display of SLM statistics for history
  """
  __slots__ = ('_pybind_generated_by', '_path_helper', '_yang_name', '_rest_name', '_extmethods', '__suspect_status','__start_time','__elapsed_time','__tx_fwd','__rx_fwd','__tx_bwd','__rx_bwd','__test_profile_name','__intiated_meas','__completed_meas','__flr_min_ratio','__flr_max_ratio','__flr_avg_ratio','__blr_min_ratio','__blr_max_ratio','__blr_avg_ratio','__history_index','__session_index',)

  _yang_name = 'slm-stats-session-history-detailed'
  _rest_name = 'slm-stats-session-history-detailed'

  _pybind_generated_by = 'container'

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

    path_helper_ = kwargs.pop("path_helper", None)
    if path_helper_ is False:
      self._path_helper = False
    elif path_helper_ is not None and isinstance(path_helper_, xpathhelper.YANGPathHelper):
      self._path_helper = path_helper_
    elif hasattr(self, "_parent"):
      path_helper_ = getattr(self._parent, "_path_helper", False)
      self._path_helper = path_helper_
    else:
      self._path_helper = False

    extmethods = kwargs.pop("extmethods", None)
    if extmethods is False:
      self._extmethods = False
    elif extmethods is not None and isinstance(extmethods, dict):
      self._extmethods = extmethods
    elif hasattr(self, "_parent"):
      extmethods = getattr(self._parent, "_extmethods", None)
      self._extmethods = extmethods
    else:
      self._extmethods = False
    self.__flr_avg_ratio = YANGDynClass(base=unicode, is_leaf=True, yang_name="flr-avg-ratio", rest_name="flr-avg-ratio", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False)
    self.__tx_bwd = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="tx-bwd", rest_name="tx-bwd", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False)
    self.__rx_bwd = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="rx-bwd", rest_name="rx-bwd", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False)
    self.__flr_min_ratio = YANGDynClass(base=unicode, is_leaf=True, yang_name="flr-min-ratio", rest_name="flr-min-ratio", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False)
    self.__completed_meas = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="completed-meas", rest_name="completed-meas", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False)
    self.__intiated_meas = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="intiated-meas", rest_name="intiated-meas", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False)
    self.__suspect_status = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="suspect-status", rest_name="suspect-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='boolean', is_config=False)
    self.__blr_avg_ratio = YANGDynClass(base=unicode, is_leaf=True, yang_name="blr-avg-ratio", rest_name="blr-avg-ratio", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False)
    self.__test_profile_name = YANGDynClass(base=unicode, is_leaf=True, yang_name="test-profile-name", rest_name="test-profile-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False)
    self.__elapsed_time = YANGDynClass(base=unicode, is_leaf=True, yang_name="elapsed-time", rest_name="elapsed-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False)
    self.__blr_min_ratio = YANGDynClass(base=unicode, is_leaf=True, yang_name="blr-min-ratio", rest_name="blr-min-ratio", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False)
    self.__history_index = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="history-index", rest_name="history-index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False)
    self.__rx_fwd = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="rx-fwd", rest_name="rx-fwd", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False)
    self.__blr_max_ratio = YANGDynClass(base=unicode, is_leaf=True, yang_name="blr-max-ratio", rest_name="blr-max-ratio", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False)
    self.__session_index = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="session-index", rest_name="session-index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False)
    self.__flr_max_ratio = YANGDynClass(base=unicode, is_leaf=True, yang_name="flr-max-ratio", rest_name="flr-max-ratio", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False)
    self.__tx_fwd = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="tx-fwd", rest_name="tx-fwd", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False)
    self.__start_time = YANGDynClass(base=unicode, is_leaf=True, yang_name="start-time", rest_name="start-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', 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 [u'cfm-state', u'slm', u'slm-stats-session-detailed', u'slm-stats-session-history-detailed']

  def _rest_path(self):
    if hasattr(self, "_parent"):
      if self._rest_name:
        return self._parent._rest_path()+[self._rest_name]
      else:
        return self._parent._rest_path()
    else:
      return [u'cfm-state', u'slm', u'slm-stats-session-detailed', u'slm-stats-session-history-detailed']

  def _get_suspect_status(self):
    """
    Getter method for suspect_status, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/suspect_status (boolean)

    YANG Description: Suspect status
    """
    return self.__suspect_status
      
  def _set_suspect_status(self, v, load=False):
    """
    Setter method for suspect_status, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/suspect_status (boolean)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_suspect_status is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_suspect_status() directly.

    YANG Description: Suspect status
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="suspect-status", rest_name="suspect-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='boolean', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """suspect_status must be of a type compatible with boolean""",
          'defined-type': "boolean",
          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="suspect-status", rest_name="suspect-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='boolean', is_config=False)""",
        })

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

  def _unset_suspect_status(self):
    self.__suspect_status = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="suspect-status", rest_name="suspect-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='boolean', is_config=False)


  def _get_start_time(self):
    """
    Getter method for start_time, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/start_time (string)

    YANG Description: Start time
    """
    return self.__start_time
      
  def _set_start_time(self, v, load=False):
    """
    Setter method for start_time, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/start_time (string)
    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: Start time
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=unicode, is_leaf=True, yang_name="start-time", rest_name="start-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """start_time must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=unicode, is_leaf=True, yang_name="start-time", rest_name="start-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False)""",
        })

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

  def _unset_start_time(self):
    self.__start_time = YANGDynClass(base=unicode, is_leaf=True, yang_name="start-time", rest_name="start-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False)


  def _get_elapsed_time(self):
    """
    Getter method for elapsed_time, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/elapsed_time (string)

    YANG Description: Start time
    """
    return self.__elapsed_time
      
  def _set_elapsed_time(self, v, load=False):
    """
    Setter method for elapsed_time, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/elapsed_time (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_elapsed_time is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_elapsed_time() directly.

    YANG Description: Start time
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=unicode, is_leaf=True, yang_name="elapsed-time", rest_name="elapsed-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """elapsed_time must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=unicode, is_leaf=True, yang_name="elapsed-time", rest_name="elapsed-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False)""",
        })

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

  def _unset_elapsed_time(self):
    self.__elapsed_time = YANGDynClass(base=unicode, is_leaf=True, yang_name="elapsed-time", rest_name="elapsed-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False)


  def _get_tx_fwd(self):
    """
    Getter method for tx_fwd, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/tx_fwd (uint32)

    YANG Description: TX in Forward direction
    """
    return self.__tx_fwd
      
  def _set_tx_fwd(self, v, load=False):
    """
    Setter method for tx_fwd, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/tx_fwd (uint32)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tx_fwd is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tx_fwd() directly.

    YANG Description: TX in Forward direction
    """
    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="tx-fwd", rest_name="tx-fwd", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tx_fwd 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="tx-fwd", rest_name="tx-fwd", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False)""",
        })

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

  def _unset_tx_fwd(self):
    self.__tx_fwd = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="tx-fwd", rest_name="tx-fwd", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False)


  def _get_rx_fwd(self):
    """
    Getter method for rx_fwd, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/rx_fwd (uint32)

    YANG Description: RX in Forward direction
    """
    return self.__rx_fwd
      
  def _set_rx_fwd(self, v, load=False):
    """
    Setter method for rx_fwd, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/rx_fwd (uint32)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_fwd is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_fwd() directly.

    YANG Description: RX in Forward direction
    """
    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="rx-fwd", rest_name="rx-fwd", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_fwd 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="rx-fwd", rest_name="rx-fwd", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False)""",
        })

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

  def _unset_rx_fwd(self):
    self.__rx_fwd = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="rx-fwd", rest_name="rx-fwd", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False)


  def _get_tx_bwd(self):
    """
    Getter method for tx_bwd, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/tx_bwd (uint32)

    YANG Description: TX in Backward direction
    """
    return self.__tx_bwd
      
  def _set_tx_bwd(self, v, load=False):
    """
    Setter method for tx_bwd, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/tx_bwd (uint32)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_tx_bwd is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_tx_bwd() directly.

    YANG Description: TX in Backward direction
    """
    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="tx-bwd", rest_name="tx-bwd", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """tx_bwd 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="tx-bwd", rest_name="tx-bwd", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False)""",
        })

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

  def _unset_tx_bwd(self):
    self.__tx_bwd = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="tx-bwd", rest_name="tx-bwd", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False)


  def _get_rx_bwd(self):
    """
    Getter method for rx_bwd, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/rx_bwd (uint32)

    YANG Description: RX in Backward direction
    """
    return self.__rx_bwd
      
  def _set_rx_bwd(self, v, load=False):
    """
    Setter method for rx_bwd, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/rx_bwd (uint32)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_rx_bwd is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_rx_bwd() directly.

    YANG Description: RX in Backward direction
    """
    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="rx-bwd", rest_name="rx-bwd", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """rx_bwd 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="rx-bwd", rest_name="rx-bwd", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False)""",
        })

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

  def _unset_rx_bwd(self):
    self.__rx_bwd = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="rx-bwd", rest_name="rx-bwd", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False)


  def _get_test_profile_name(self):
    """
    Getter method for test_profile_name, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/test_profile_name (string)

    YANG Description: Test Profile name
    """
    return self.__test_profile_name
      
  def _set_test_profile_name(self, v, load=False):
    """
    Setter method for test_profile_name, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/test_profile_name (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_test_profile_name is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_test_profile_name() directly.

    YANG Description: Test Profile name
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=unicode, is_leaf=True, yang_name="test-profile-name", rest_name="test-profile-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """test_profile_name must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=unicode, is_leaf=True, yang_name="test-profile-name", rest_name="test-profile-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False)""",
        })

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

  def _unset_test_profile_name(self):
    self.__test_profile_name = YANGDynClass(base=unicode, is_leaf=True, yang_name="test-profile-name", rest_name="test-profile-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False)


  def _get_intiated_meas(self):
    """
    Getter method for intiated_meas, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/intiated_meas (uint32)

    YANG Description: Initiated Measurements
    """
    return self.__intiated_meas
      
  def _set_intiated_meas(self, v, load=False):
    """
    Setter method for intiated_meas, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/intiated_meas (uint32)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_intiated_meas is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_intiated_meas() directly.

    YANG Description: Initiated Measurements
    """
    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="intiated-meas", rest_name="intiated-meas", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """intiated_meas 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="intiated-meas", rest_name="intiated-meas", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False)""",
        })

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

  def _unset_intiated_meas(self):
    self.__intiated_meas = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="intiated-meas", rest_name="intiated-meas", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False)


  def _get_completed_meas(self):
    """
    Getter method for completed_meas, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/completed_meas (uint32)

    YANG Description: Completed Measurements
    """
    return self.__completed_meas
      
  def _set_completed_meas(self, v, load=False):
    """
    Setter method for completed_meas, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/completed_meas (uint32)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_completed_meas is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_completed_meas() directly.

    YANG Description: Completed Measurements
    """
    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="completed-meas", rest_name="completed-meas", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """completed_meas 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="completed-meas", rest_name="completed-meas", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False)""",
        })

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

  def _unset_completed_meas(self):
    self.__completed_meas = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="completed-meas", rest_name="completed-meas", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False)


  def _get_flr_min_ratio(self):
    """
    Getter method for flr_min_ratio, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/flr_min_ratio (string)

    YANG Description: Minumum Frame loss ratio in forward direction
    """
    return self.__flr_min_ratio
      
  def _set_flr_min_ratio(self, v, load=False):
    """
    Setter method for flr_min_ratio, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/flr_min_ratio (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_flr_min_ratio is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_flr_min_ratio() directly.

    YANG Description: Minumum Frame loss ratio in forward direction
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=unicode, is_leaf=True, yang_name="flr-min-ratio", rest_name="flr-min-ratio", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """flr_min_ratio must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=unicode, is_leaf=True, yang_name="flr-min-ratio", rest_name="flr-min-ratio", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False)""",
        })

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

  def _unset_flr_min_ratio(self):
    self.__flr_min_ratio = YANGDynClass(base=unicode, is_leaf=True, yang_name="flr-min-ratio", rest_name="flr-min-ratio", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False)


  def _get_flr_max_ratio(self):
    """
    Getter method for flr_max_ratio, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/flr_max_ratio (string)

    YANG Description: Maximum Frame loss ratio in forward direction
    """
    return self.__flr_max_ratio
      
  def _set_flr_max_ratio(self, v, load=False):
    """
    Setter method for flr_max_ratio, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/flr_max_ratio (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_flr_max_ratio is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_flr_max_ratio() directly.

    YANG Description: Maximum Frame loss ratio in forward direction
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=unicode, is_leaf=True, yang_name="flr-max-ratio", rest_name="flr-max-ratio", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """flr_max_ratio must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=unicode, is_leaf=True, yang_name="flr-max-ratio", rest_name="flr-max-ratio", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False)""",
        })

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

  def _unset_flr_max_ratio(self):
    self.__flr_max_ratio = YANGDynClass(base=unicode, is_leaf=True, yang_name="flr-max-ratio", rest_name="flr-max-ratio", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False)


  def _get_flr_avg_ratio(self):
    """
    Getter method for flr_avg_ratio, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/flr_avg_ratio (string)

    YANG Description: Average Frame loss ratio in forward direction
    """
    return self.__flr_avg_ratio
      
  def _set_flr_avg_ratio(self, v, load=False):
    """
    Setter method for flr_avg_ratio, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/flr_avg_ratio (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_flr_avg_ratio is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_flr_avg_ratio() directly.

    YANG Description: Average Frame loss ratio in forward direction
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=unicode, is_leaf=True, yang_name="flr-avg-ratio", rest_name="flr-avg-ratio", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """flr_avg_ratio must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=unicode, is_leaf=True, yang_name="flr-avg-ratio", rest_name="flr-avg-ratio", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False)""",
        })

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

  def _unset_flr_avg_ratio(self):
    self.__flr_avg_ratio = YANGDynClass(base=unicode, is_leaf=True, yang_name="flr-avg-ratio", rest_name="flr-avg-ratio", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False)


  def _get_blr_min_ratio(self):
    """
    Getter method for blr_min_ratio, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/blr_min_ratio (string)

    YANG Description: Minumum Frame loss ratio in backward direction
    """
    return self.__blr_min_ratio
      
  def _set_blr_min_ratio(self, v, load=False):
    """
    Setter method for blr_min_ratio, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/blr_min_ratio (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_blr_min_ratio is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_blr_min_ratio() directly.

    YANG Description: Minumum Frame loss ratio in backward direction
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=unicode, is_leaf=True, yang_name="blr-min-ratio", rest_name="blr-min-ratio", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """blr_min_ratio must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=unicode, is_leaf=True, yang_name="blr-min-ratio", rest_name="blr-min-ratio", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False)""",
        })

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

  def _unset_blr_min_ratio(self):
    self.__blr_min_ratio = YANGDynClass(base=unicode, is_leaf=True, yang_name="blr-min-ratio", rest_name="blr-min-ratio", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False)


  def _get_blr_max_ratio(self):
    """
    Getter method for blr_max_ratio, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/blr_max_ratio (string)

    YANG Description: Maximum Frame loss ratio in backward direction
    """
    return self.__blr_max_ratio
      
  def _set_blr_max_ratio(self, v, load=False):
    """
    Setter method for blr_max_ratio, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/blr_max_ratio (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_blr_max_ratio is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_blr_max_ratio() directly.

    YANG Description: Maximum Frame loss ratio in backward direction
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=unicode, is_leaf=True, yang_name="blr-max-ratio", rest_name="blr-max-ratio", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """blr_max_ratio must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=unicode, is_leaf=True, yang_name="blr-max-ratio", rest_name="blr-max-ratio", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False)""",
        })

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

  def _unset_blr_max_ratio(self):
    self.__blr_max_ratio = YANGDynClass(base=unicode, is_leaf=True, yang_name="blr-max-ratio", rest_name="blr-max-ratio", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False)


  def _get_blr_avg_ratio(self):
    """
    Getter method for blr_avg_ratio, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/blr_avg_ratio (string)

    YANG Description: Average Frame loss ratio in backward direction
    """
    return self.__blr_avg_ratio
      
  def _set_blr_avg_ratio(self, v, load=False):
    """
    Setter method for blr_avg_ratio, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/blr_avg_ratio (string)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_blr_avg_ratio is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_blr_avg_ratio() directly.

    YANG Description: Average Frame loss ratio in backward direction
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=unicode, is_leaf=True, yang_name="blr-avg-ratio", rest_name="blr-avg-ratio", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """blr_avg_ratio must be of a type compatible with string""",
          'defined-type': "string",
          'generated-type': """YANGDynClass(base=unicode, is_leaf=True, yang_name="blr-avg-ratio", rest_name="blr-avg-ratio", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False)""",
        })

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

  def _unset_blr_avg_ratio(self):
    self.__blr_avg_ratio = YANGDynClass(base=unicode, is_leaf=True, yang_name="blr-avg-ratio", rest_name="blr-avg-ratio", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False)


  def _get_history_index(self):
    """
    Getter method for history_index, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/history_index (uint32)

    YANG Description: SLM history index for the session
    """
    return self.__history_index
      
  def _set_history_index(self, v, load=False):
    """
    Setter method for history_index, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/history_index (uint32)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_history_index is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_history_index() directly.

    YANG Description: SLM history index for the session
    """
    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=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="history-index", rest_name="history-index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """history_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), is_leaf=True, yang_name="history-index", rest_name="history-index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False)""",
        })

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

  def _unset_history_index(self):
    self.__history_index = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="history-index", rest_name="history-index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False)


  def _get_session_index(self):
    """
    Getter method for session_index, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/session_index (uint32)

    YANG Description: SLM session index
    """
    return self.__session_index
      
  def _set_session_index(self, v, load=False):
    """
    Setter method for session_index, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/session_index (uint32)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_session_index is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_session_index() directly.

    YANG Description: SLM session index
    """
    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="session-index", rest_name="session-index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """session_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), is_leaf=True, yang_name="session-index", rest_name="session-index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False)""",
        })

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

  def _unset_session_index(self):
    self.__session_index = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="session-index", rest_name="session-index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False)

  suspect_status = __builtin__.property(_get_suspect_status)
  start_time = __builtin__.property(_get_start_time)
  elapsed_time = __builtin__.property(_get_elapsed_time)
  tx_fwd = __builtin__.property(_get_tx_fwd)
  rx_fwd = __builtin__.property(_get_rx_fwd)
  tx_bwd = __builtin__.property(_get_tx_bwd)
  rx_bwd = __builtin__.property(_get_rx_bwd)
  test_profile_name = __builtin__.property(_get_test_profile_name)
  intiated_meas = __builtin__.property(_get_intiated_meas)
  completed_meas = __builtin__.property(_get_completed_meas)
  flr_min_ratio = __builtin__.property(_get_flr_min_ratio)
  flr_max_ratio = __builtin__.property(_get_flr_max_ratio)
  flr_avg_ratio = __builtin__.property(_get_flr_avg_ratio)
  blr_min_ratio = __builtin__.property(_get_blr_min_ratio)
  blr_max_ratio = __builtin__.property(_get_blr_max_ratio)
  blr_avg_ratio = __builtin__.property(_get_blr_avg_ratio)
  history_index = __builtin__.property(_get_history_index)
  session_index = __builtin__.property(_get_session_index)


  _pyangbind_elements = {'suspect_status': suspect_status, 'start_time': start_time, 'elapsed_time': elapsed_time, 'tx_fwd': tx_fwd, 'rx_fwd': rx_fwd, 'tx_bwd': tx_bwd, 'rx_bwd': rx_bwd, 'test_profile_name': test_profile_name, 'intiated_meas': intiated_meas, 'completed_meas': completed_meas, 'flr_min_ratio': flr_min_ratio, 'flr_max_ratio': flr_max_ratio, 'flr_avg_ratio': flr_avg_ratio, 'blr_min_ratio': blr_min_ratio, 'blr_max_ratio': blr_max_ratio, 'blr_avg_ratio': blr_avg_ratio, 'history_index': history_index, 'session_index': session_index, }



This class was auto-generated by the PythonClass plugin for PYANG   from YANG module brocade-dot1ag-operational - based on the path /cfm-state/slm/slm-stats-session-detailed/slm-stats-session-history-detailed. Each member element of   the container is represented as a class variable - with a specific   YANG type.    YANG Description: Detailed display of SLM statistics for history Getter method for suspect_status, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/suspect_status (boolean)      YANG Description: Suspect status Setter method for suspect_status, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/suspect_status (boolean)     If this variable is read-only (config: false) in the     source YANG file, then _set_suspect_status is considered as a private     method. Backends looking to populate this variable should     do so via calling thisObj._set_suspect_status() directly.      YANG Description: Suspect status suspect_status must be of a type compatible with boolean YANGDynClass(base=YANGBool, is_leaf=True, yang_name="suspect-status", rest_name="suspect-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='boolean', is_config=False) Getter method for start_time, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/start_time (string)      YANG Description: Start time Setter method for start_time, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/start_time (string)     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: Start time start_time must be of a type compatible with string YANGDynClass(base=unicode, is_leaf=True, yang_name="start-time", rest_name="start-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False) Getter method for elapsed_time, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/elapsed_time (string)      YANG Description: Start time Setter method for elapsed_time, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/elapsed_time (string)     If this variable is read-only (config: false) in the     source YANG file, then _set_elapsed_time is considered as a private     method. Backends looking to populate this variable should     do so via calling thisObj._set_elapsed_time() directly.      YANG Description: Start time elapsed_time must be of a type compatible with string YANGDynClass(base=unicode, is_leaf=True, yang_name="elapsed-time", rest_name="elapsed-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False) Getter method for tx_fwd, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/tx_fwd (uint32)      YANG Description: TX in Forward direction Setter method for tx_fwd, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/tx_fwd (uint32)     If this variable is read-only (config: false) in the     source YANG file, then _set_tx_fwd is considered as a private     method. Backends looking to populate this variable should     do so via calling thisObj._set_tx_fwd() directly.      YANG Description: TX in Forward direction tx_fwd must be of a type compatible with uint32 YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="tx-fwd", rest_name="tx-fwd", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False) Getter method for rx_fwd, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/rx_fwd (uint32)      YANG Description: RX in Forward direction Setter method for rx_fwd, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/rx_fwd (uint32)     If this variable is read-only (config: false) in the     source YANG file, then _set_rx_fwd is considered as a private     method. Backends looking to populate this variable should     do so via calling thisObj._set_rx_fwd() directly.      YANG Description: RX in Forward direction rx_fwd must be of a type compatible with uint32 YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="rx-fwd", rest_name="rx-fwd", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False) Getter method for tx_bwd, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/tx_bwd (uint32)      YANG Description: TX in Backward direction Setter method for tx_bwd, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/tx_bwd (uint32)     If this variable is read-only (config: false) in the     source YANG file, then _set_tx_bwd is considered as a private     method. Backends looking to populate this variable should     do so via calling thisObj._set_tx_bwd() directly.      YANG Description: TX in Backward direction tx_bwd must be of a type compatible with uint32 YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="tx-bwd", rest_name="tx-bwd", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False) Getter method for rx_bwd, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/rx_bwd (uint32)      YANG Description: RX in Backward direction Setter method for rx_bwd, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/rx_bwd (uint32)     If this variable is read-only (config: false) in the     source YANG file, then _set_rx_bwd is considered as a private     method. Backends looking to populate this variable should     do so via calling thisObj._set_rx_bwd() directly.      YANG Description: RX in Backward direction rx_bwd must be of a type compatible with uint32 YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="rx-bwd", rest_name="rx-bwd", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False) Getter method for test_profile_name, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/test_profile_name (string)      YANG Description: Test Profile name Setter method for test_profile_name, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/test_profile_name (string)     If this variable is read-only (config: false) in the     source YANG file, then _set_test_profile_name is considered as a private     method. Backends looking to populate this variable should     do so via calling thisObj._set_test_profile_name() directly.      YANG Description: Test Profile name test_profile_name must be of a type compatible with string YANGDynClass(base=unicode, is_leaf=True, yang_name="test-profile-name", rest_name="test-profile-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False) Getter method for intiated_meas, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/intiated_meas (uint32)      YANG Description: Initiated Measurements Setter method for intiated_meas, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/intiated_meas (uint32)     If this variable is read-only (config: false) in the     source YANG file, then _set_intiated_meas is considered as a private     method. Backends looking to populate this variable should     do so via calling thisObj._set_intiated_meas() directly.      YANG Description: Initiated Measurements intiated_meas must be of a type compatible with uint32 YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="intiated-meas", rest_name="intiated-meas", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False) Getter method for completed_meas, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/completed_meas (uint32)      YANG Description: Completed Measurements Setter method for completed_meas, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/completed_meas (uint32)     If this variable is read-only (config: false) in the     source YANG file, then _set_completed_meas is considered as a private     method. Backends looking to populate this variable should     do so via calling thisObj._set_completed_meas() directly.      YANG Description: Completed Measurements completed_meas must be of a type compatible with uint32 YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="completed-meas", rest_name="completed-meas", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False) Getter method for flr_min_ratio, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/flr_min_ratio (string)      YANG Description: Minumum Frame loss ratio in forward direction Setter method for flr_min_ratio, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/flr_min_ratio (string)     If this variable is read-only (config: false) in the     source YANG file, then _set_flr_min_ratio is considered as a private     method. Backends looking to populate this variable should     do so via calling thisObj._set_flr_min_ratio() directly.      YANG Description: Minumum Frame loss ratio in forward direction flr_min_ratio must be of a type compatible with string YANGDynClass(base=unicode, is_leaf=True, yang_name="flr-min-ratio", rest_name="flr-min-ratio", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False) Getter method for flr_max_ratio, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/flr_max_ratio (string)      YANG Description: Maximum Frame loss ratio in forward direction Setter method for flr_max_ratio, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/flr_max_ratio (string)     If this variable is read-only (config: false) in the     source YANG file, then _set_flr_max_ratio is considered as a private     method. Backends looking to populate this variable should     do so via calling thisObj._set_flr_max_ratio() directly.      YANG Description: Maximum Frame loss ratio in forward direction flr_max_ratio must be of a type compatible with string YANGDynClass(base=unicode, is_leaf=True, yang_name="flr-max-ratio", rest_name="flr-max-ratio", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False) Getter method for flr_avg_ratio, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/flr_avg_ratio (string)      YANG Description: Average Frame loss ratio in forward direction Setter method for flr_avg_ratio, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/flr_avg_ratio (string)     If this variable is read-only (config: false) in the     source YANG file, then _set_flr_avg_ratio is considered as a private     method. Backends looking to populate this variable should     do so via calling thisObj._set_flr_avg_ratio() directly.      YANG Description: Average Frame loss ratio in forward direction flr_avg_ratio must be of a type compatible with string YANGDynClass(base=unicode, is_leaf=True, yang_name="flr-avg-ratio", rest_name="flr-avg-ratio", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False) Getter method for blr_min_ratio, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/blr_min_ratio (string)      YANG Description: Minumum Frame loss ratio in backward direction Setter method for blr_min_ratio, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/blr_min_ratio (string)     If this variable is read-only (config: false) in the     source YANG file, then _set_blr_min_ratio is considered as a private     method. Backends looking to populate this variable should     do so via calling thisObj._set_blr_min_ratio() directly.      YANG Description: Minumum Frame loss ratio in backward direction blr_min_ratio must be of a type compatible with string YANGDynClass(base=unicode, is_leaf=True, yang_name="blr-min-ratio", rest_name="blr-min-ratio", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False) Getter method for blr_max_ratio, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/blr_max_ratio (string)      YANG Description: Maximum Frame loss ratio in backward direction Setter method for blr_max_ratio, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/blr_max_ratio (string)     If this variable is read-only (config: false) in the     source YANG file, then _set_blr_max_ratio is considered as a private     method. Backends looking to populate this variable should     do so via calling thisObj._set_blr_max_ratio() directly.      YANG Description: Maximum Frame loss ratio in backward direction blr_max_ratio must be of a type compatible with string YANGDynClass(base=unicode, is_leaf=True, yang_name="blr-max-ratio", rest_name="blr-max-ratio", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False) Getter method for blr_avg_ratio, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/blr_avg_ratio (string)      YANG Description: Average Frame loss ratio in backward direction Setter method for blr_avg_ratio, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/blr_avg_ratio (string)     If this variable is read-only (config: false) in the     source YANG file, then _set_blr_avg_ratio is considered as a private     method. Backends looking to populate this variable should     do so via calling thisObj._set_blr_avg_ratio() directly.      YANG Description: Average Frame loss ratio in backward direction blr_avg_ratio must be of a type compatible with string YANGDynClass(base=unicode, is_leaf=True, yang_name="blr-avg-ratio", rest_name="blr-avg-ratio", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='string', is_config=False) Getter method for history_index, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/history_index (uint32)      YANG Description: SLM history index for the session Setter method for history_index, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/history_index (uint32)     If this variable is read-only (config: false) in the     source YANG file, then _set_history_index is considered as a private     method. Backends looking to populate this variable should     do so via calling thisObj._set_history_index() directly.      YANG Description: SLM history index for the session history_index must be of a type compatible with uint32 YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="history-index", rest_name="history-index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False) Getter method for session_index, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/session_index (uint32)      YANG Description: SLM session index Setter method for session_index, mapped from YANG variable /cfm_state/slm/slm_stats_session_detailed/slm_stats_session_history_detailed/session_index (uint32)     If this variable is read-only (config: false) in the     source YANG file, then _set_session_index is considered as a private     method. Backends looking to populate this variable should     do so via calling thisObj._set_session_index() directly.      YANG Description: SLM session index session_index must be of a type compatible with uint32 YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="session-index", rest_name="session-index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:brocade.com:mgmt:brocade-dot1ag-operational', defining_module='brocade-dot1ag-operational', yang_type='uint32', is_config=False)