def METHOD_NAME(data):
    """Checks for all the parameters in the input configuration file and
    validates them."""
    tracking_metatable_name = "tracking_table_info"
    try:
        project_id = data['GCP']['project_id']
        gcs_bucket_name = data['GCP']['bucket']
        hive_host = data['Hive']['host']
        hive_port = data['Hive']['port']
        hive_user = data['Hive']['user']
        hive_database = data['Hive']['database']
        hive_table = data['Hive']['table']
        incremental_col = data['Hive']['incremental_col']
        bq_dataset = data['BigQuery']['dataset']
        bq_table = data['BigQuery']['table']
        use_clustering = data['BigQuery']['use_clustering']
        bq_write_mode = data['BigQuery']['write_mode']
        tracking_db_host = data['Tracking_DB']['host']
        tracking_db_port = data['Tracking_DB']['port']
        tracking_db_user = data['Tracking_DB']['user']
        tracking_db_name = data['Tracking_DB']['database']
        tracking_db_password_path = data['Tracking_DB']['password_file_path']
        kms_location = data['KMS']['location_id']
        kms_key_ring_id = data['KMS']['key_ring_id']
        kms_crypto_key_id = data['KMS']['crypto_key_id']
        create_validation_table = data['create_validation_table']
    except KeyError:
        raise
    hive_table = hive_table.lower()
    if bq_table is None:
        bq_table = hive_table
    validate_bq_table_name(bq_table)
    if not isinstance(hive_port, int):
        raise TypeError("Hive port must be an integer")
    if not isinstance(tracking_db_port, int):
        raise TypeError("Tracking database port must be an integer")
    if gcs_bucket_name.startswith('gs://'):
        gcs_bucket_name = gcs_bucket_name.split('gs://')[1]
    if gcs_bucket_name[-1] == '/':
        gcs_bucket_name = gcs_bucket_name[:-1]
    if not tracking_db_password_path.startswith('gs://'):
        raise ValueError(
            "Tracking database password path must start with gs://")
    bq_write_mode = bq_write_mode.lower()
    hive_bq_comparison_csv = "{}_metrics_hive_bq_{}.csv".format(
        hive_table, TIME_FORMAT)
    hive_bq_comparison_table = "{}_metrics_hive_bq_{}".format(
        hive_table, TIME_FORMAT)
    config = {
        "project_id": project_id,
        "gcs_bucket_name": gcs_bucket_name,
        "hive_server_host": hive_host,
        "hive_server_port": hive_port,
        "hive_server_username": hive_user,
        "hive_database": hive_database,
        "hive_table_name": hive_table,
        "incremental_col": incremental_col,
        "dataset_id": bq_dataset,
        "bq_table": bq_table,
        "bq_table_write_mode": bq_write_mode,
        "use_clustering": use_clustering,
        "tracking_database_host": tracking_db_host,
        "tracking_database_port": tracking_db_port,
        "tracking_database_user": tracking_db_user,
        "tracking_database_db_name": tracking_db_name,
        "tracking_db_password_path": tracking_db_password_path,
        "tracking_metatable_name": tracking_metatable_name,
        "location_id": kms_location,
        "key_ring_id": kms_key_ring_id,
        "crypto_key_id": kms_crypto_key_id,
        "create_validation_table": create_validation_table,
        "hive_bq_comparison_csv": hive_bq_comparison_csv,
        "hive_bq_comparison_table": hive_bq_comparison_table,
        "log_file_name": LOG_FILE_NAME
    }
    return config