def _set_mka_key(self, v, load=False):
    """
    Setter method for mka_key, mapped from YANG variable /macsec/mka/key_chains/key_chain/mka_keys/mka_key (list)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_mka_key is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_mka_key() directly.

    YANG Description: List of MKA keys
    """
    if hasattr(v, "_utype"):
      v = v._utype(v)
    try:
      t = YANGDynClass(v,base=YANGListType("id",yc_mka_key_openconfig_macsec__macsec_mka_key_chains_key_chain_mka_keys_mka_key, yang_name="mka-key", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='id', extensions=None), is_container='list', yang_name="mka-key", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/macsec', defining_module='openconfig-macsec', yang_type='list', is_config=True)
    except (TypeError, ValueError):
      raise ValueError({
          'error-string': """mka_key must be of a type compatible with list""",
          'defined-type': "list",
          'generated-type': """YANGDynClass(base=YANGListType("id",yc_mka_key_openconfig_macsec__macsec_mka_key_chains_key_chain_mka_keys_mka_key, yang_name="mka-key", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='id', extensions=None), is_container='list', yang_name="mka-key", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/macsec', defining_module='openconfig-macsec', yang_type='list', is_config=True)""",
        })

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