code: def register_integration(package_folder):
      
      logger.debug("registering integration %s", package_folder)
      package_folder = os.path.realpath(package_folder)
      if not os.path.exists(package_folder):
          raise IntegrationNotFound(os.path.basename(package_folder))
  
      json_config_path = os.path.join(package_folder, CONFIG_FILE_NAME)
      if not os.path.exists(json_config_path):
          raise ConfigFileNotFound(json_config_path)
  
      with open(json_config_path, "r") as f:
          config_json = json.load(f)
  
      # Validate integration and alert config
      validate_config(config_json, defs.INTEGRATION_VALIDATE_CONFIG_FIELDS)
      validate_config_parameters(config_json,
                                 defs.INTEGRATION_PARAMETERS_ALLOWED_KEYS,
                                 defs.INTEGRATION_PARAMETERS_ALLOWED_TYPES)
  
      integration_type = _create_integration_object(config_json)
  
      return integration_type
docs: Register a honeycomb integration.
  
      :param package_folder: Path to folder with integration to load
      :returns: Validated integration object
      :rtype: :func:`honeycomb.utils.defs.Integration`