code: def _set_key_exchange(self, v, load=False):
      
      if hasattr(v, "_utype"):
        v = v._utype(v)
      try:
        t = YANGDynClass(v,base=unicode, is_leaf=True, yang_name="key-exchange", rest_name="key-exchange", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions={u'tailf-common': {u'info': u'Configure Key Exchange algorithm(s))', u'cli-full-command': None, u'callpoint': u'ssh_server_list_cp'}}, namespace='urn:brocade.com:mgmt:brocade-sec-services', defining_module='brocade-sec-services', yang_type='string', is_config=True)
      except (TypeError, ValueError):
        raise ValueError({
            'error-string': """key_exchange must be of a type compatible with string""",
            'defined-type': "string",
            'generated-type': """YANGDynClass(base=unicode, is_leaf=True, yang_name="key-exchange", rest_name="key-exchange", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions={u'tailf-common': {u'info': u'Configure Key Exchange algorithm(s))', u'cli-full-command': None, u'callpoint': u'ssh_server_list_cp'}}, namespace='urn:brocade.com:mgmt:brocade-sec-services', defining_module='brocade-sec-services', yang_type='string', is_config=True)""",
          })
  
      self.__key_exchange = t
      if hasattr(self, '_set'):
        self._set()
docs: Setter method for key_exchange, mapped from YANG variable /ssh_sa/ssh/server/key_exchange (string)
      If this variable is read-only (config: false) in the
      source YANG file, then _set_key_exchange is considered as a private
      method. Backends looking to populate this variable should
      do so via calling thisObj._set_key_exchange() directly.