code: public void importFederatedFromGcs(
        String projectId,
        TableReference tableRef,
        @Nullable TableSchema schema,
        BigQueryFileFormat sourceFormat,
        List<String> gcsPaths)
        throws IOException {
      logger.atInfo().log(
          "Importing into federated table '%s' from %s paths; path[0] is '%s'",
          BigQueryStrings.toString(tableRef),
          gcsPaths.size(),
          gcsPaths.isEmpty() ? "(empty)" : gcsPaths.get(0));
  
      ExternalDataConfiguration externalConf = new ExternalDataConfiguration();
      externalConf.setSchema(schema);
      externalConf.setSourceUris(gcsPaths);
      externalConf.setSourceFormat(sourceFormat.getFormatIdentifier());
  
      // Auto detect the schema if we're not given one, otherwise use the passed schema.
      if (schema == null) {
        logger.atInfo().log("No federated import schema provided, auto detecting schema.");
        externalConf.setAutodetect(true);
      } else {
        logger.atInfo().log("Using provided federated import schema '%s'.", schema.toString());
      }
  
      Table table = new Table();
      table.setTableReference(tableRef);
      table.setExternalDataConfiguration(externalConf);
  
      service.tables().insert(projectId, tableRef.getDatasetId(), table).execute();
    }
docs: Performs a federated import on data from GCS into BigQuery via a table insert.
  
  @param projectId the project on whose behalf to perform the load.
  @param tableRef the reference to the destination table.
  @param schema the schema of the source data to populate the destination table by.
  @param sourceFormat the file format of the source data.
  @param gcsPaths the location of the source data in GCS.
  @throws IOException