def METHOD_NAME(self, prepared_request: requests.PreparedRequest) -> str:
    current_ts = pendulum.now("utc")
    url_parsed = urlparse(prepared_request.url)
    uri = urllib.parse.quote(url_parsed.path)
    host = url_parsed.hostname
    amz_date = current_ts.strftime("%Y%m%dT%H%M%SZ")
    datestamp = current_ts.strftime("%Y%m%d")
    # sort query parameters alphabetically
    if len(url_parsed.query) > 0:
        split_query_parameters = list(map(lambda param: param.split("="), url_parsed.query.split("&")))
        ordered_query_parameters = sorted(split_query_parameters, key=lambda param: (param[0], param[1]))
    else:
        ordered_query_parameters = list()
    canonical_querystring = "&".join(map(lambda param: "=".join(param), ordered_query_parameters))
    headers_to_sign = {"host": host, "x-amz-date": amz_date}
    if self.aws_session_token:
        headers_to_sign["x-amz-security-token"] = self.aws_session_token
    ordered_headers = dict(sorted(headers_to_sign.items(), key=lambda h: h[0]))
    canonical_headers = "".join(map(lambda h: ":".join(h) + "\n", ordered_headers.items()))
    signed_headers = ";".join(ordered_headers.keys())
    if prepared_request.method == "GET":
        payload_hash = hashlib.sha256("".encode("utf-8")).hexdigest()
    else:
        if prepared_request.body:
            payload_hash = hashlib.sha256(prepared_request.body.encode("utf-8")).hexdigest()
        else:
            payload_hash = hashlib.sha256("".encode("utf-8")).hexdigest()
    canonical_request = "\n".join(
        [prepared_request.method, uri, canonical_querystring, canonical_headers, signed_headers, payload_hash]
    )
    credential_scope = "/".join([datestamp, self.region, self.service, "aws4_request"])
    string_to_sign = "\n".join(
        ["AWS4-HMAC-SHA256", amz_date, credential_scope, hashlib.sha256(canonical_request.encode("utf-8")).hexdigest()]
    )
    datestamp_signed = self._sign_msg(("AWS4" + self.aws_secret_access_key).encode("utf-8"), datestamp)
    region_signed = self._sign_msg(datestamp_signed, self.region)
    service_signed = self._sign_msg(region_signed, self.service)
    aws4_request_signed = self._sign_msg(service_signed, "aws4_request")
    signature = hmac.new(aws4_request_signed, string_to_sign.encode("utf-8"), hashlib.sha256).hexdigest()
    authorization_header = "AWS4-HMAC-SHA256 Credential={}/{}, SignedHeaders={}, Signature={}".format(
        self.aws_access_key_id, credential_scope, signed_headers, signature
    )
    return authorization_header