code: def _set_cfp2(self, v, load=False):
      
      if hasattr(v, "_utype"):
        v = v._utype(v)
      try:
        t = YANGDynClass(v,base=cfp2.cfp2, is_container='container', presence=False, yang_name="cfp2", rest_name="cfp2", parent=self, choice=(u'interface-identifier', u'cfp2'), path_helper=self._path_helper, extmethods=self._extmethods, register_paths=False, extensions=None, namespace='urn:brocade.com:mgmt:brocade-interface-ext', defining_module='brocade-interface-ext', yang_type='container', is_config=True)
      except (TypeError, ValueError):
        raise ValueError({
            'error-string': """cfp2 must be of a type compatible with container""",
            'defined-type': "container",
            'generated-type': """YANGDynClass(base=cfp2.cfp2, is_container='container', presence=False, yang_name="cfp2", rest_name="cfp2", parent=self, choice=(u'interface-identifier', u'cfp2'), path_helper=self._path_helper, extmethods=self._extmethods, register_paths=False, extensions=None, namespace='urn:brocade.com:mgmt:brocade-interface-ext', defining_module='brocade-interface-ext', yang_type='container', is_config=True)""",
          })
  
      self.__cfp2 = t
      if hasattr(self, '_set'):
        self._set()
docs: Setter method for cfp2, mapped from YANG variable /brocade_interface_ext_rpc/get_media_detail/output/interface/cfp2 (container)
      If this variable is read-only (config: false) in the
      source YANG file, then _set_cfp2 is considered as a private
      method. Backends looking to populate this variable should
      do so via calling thisObj._set_cfp2() directly.