public String getDownloadUrl(String searchQuery, PlanetilerConfig config) {
    var indexXml = getAndCacheIndex(config);
    return searchIndexForDownloadUrl(searchQuery, indexXml);
  }
Fetches the S3 bucket index and searches for a {@code .osm.pbf} resource to download where snapshot date matches
{@code searchQuery}, or the latest snapshot if {@code searchQuery == "latest"}.
<p>
The index is only fetched once and cached after that.

@param searchQuery the snapshot to search for
@param config      planetiler config with user-agent and timeout to use when downloading
@return the URL of a {@code .osm.pbf} file with name or snapshot ID matching {@code searchQuery}
@throws IllegalArgumentException if no matches, or more than one match is found.
planetiler-core/src/main/java/com/onthegomap/planetiler/util/AwsOsm.java