docs: private AccessControlList getAcl(String bucketName, String key, String versionId,
              boolean isRequesterPays, AmazonWebServiceRequest originalRequest) {
          if (originalRequest == null) originalRequest = new GenericBucketRequest(bucketName);
  
          Request<AmazonWebServiceRequest> request = createRequest(bucketName, key, originalRequest, HttpMethodName.GET);
  
          if (bucketName != null && key != null) {
              request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetObjectAcl");
          } else if (bucketName != null) {
              request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetBucketAcl");
          }
  
          request.addParameter("acl", null);
          if (versionId != null) {
              request.addParameter("versionId", versionId);
          }
          populateRequesterPaysHeader(request, isRequesterPays);
  
          @SuppressWarnings("unchecked")
          ResponseHeaderHandlerChain<AccessControlList> responseHandler = new ResponseHeaderHandlerChain<AccessControlList>(
                  new Unmarshallers.AccessControlListUnmarshaller(),
                  new S3RequesterChargedHeaderHandler<AccessControlList>());
  
          return invoke(request, responseHandler, bucketName, key);
      }