<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def register_integration(package_folder):
 """Register a honeycomb integration. :param package_folder: Path to folder with integration to load :returns: Validated integration object :rtype: :func:`honeycomb.utils.defs.Integration` """

    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