* See step 2 in https://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html
const auto path_segments = StringUtil::splitToken(original_path, std::string{PATH_SPLITTER});
* See step 3 in https://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html
return absl::StrJoin(query_list, QUERY_SEPERATOR, absl::PairFormatter(QUERY_PARAM_SEPERATOR));
Utility::joinCanonicalHeaderNames(const std::map<std::string, std::string>& canonical_headers) {
* that region still contains a wildcard, the STS Endpoint will be set to us-east-1 global endpoint
const envoy::config::cluster::v3::Cluster::DiscoveryType cluster_type, absl::string_view uri) {
// Default config file path plus current home directory. Will fall back to / if HOME environment
if ((!value_or_error.ok()) || (!absl::holds_alternative<std::string>(value_or_error.value()))) {
// https://github.com/boto/botocore/blob/66d047b5cdb033e4406e306afc5ab1c3e4785f16/botocore/data/s3control/2018-08-20/endpoint-rule-set-1.json#L368
// https://github.com/boto/botocore/blob/66d047b5cdb033e4406e306afc5ab1c3e4785f16/botocore/data/s3/2006-03-01/endpoint-rule-set-1.json#L4347
// https://github.com/boto/botocore/blob/66d047b5cdb033e4406e306afc5ab1c3e4785f16/botocore/data/s3/2006-03-01/endpoint-rule-set-1.json#L390
// Even though these are two separate flags in the AWS SDKs, they are used in conjunction with each