@Override
  public boolean equals(Object obj) {
    if (this == obj) return true;
    if (obj == null) return false;

    if (obj instanceof DeleteDistributionRequest == false) return false;
    DeleteDistributionRequest other = (DeleteDistributionRequest) obj;
    if (other.getId() == null ^ this.getId() == null) return false;
    if (other.getId() != null && other.getId().equals(this.getId()) == false) return false;
    if (other.getIfMatch() == null ^ this.getIfMatch() == null) return false;
    if (other.getIfMatch() != null && other.getIfMatch().equals(this.getIfMatch()) == false)
      return false;
    return true;
  }
  public Request<DeleteDistributionRequest> marshall(
      DeleteDistributionRequest deleteDistributionRequest) {

    if (deleteDistributionRequest == null) {
      throw new AmazonClientException("Invalid argument passed to marshall(...)");
    }

    Request<DeleteDistributionRequest> request =
        new DefaultRequest<DeleteDistributionRequest>(
            deleteDistributionRequest, "AmazonCloudFront");
    request.setHttpMethod(HttpMethodName.DELETE);
    if (deleteDistributionRequest.getIfMatch() != null)
      request.addHeader("If-Match", StringUtils.fromString(deleteDistributionRequest.getIfMatch()));

    String uriResourcePath = RESOURCE_PATH_TEMPLATE;

    if (DYNAMIC_QUERY_PARAMS.containsKey("Id")) {
      String name = DYNAMIC_QUERY_PARAMS.get("Id");
      String value =
          (deleteDistributionRequest.getId() == null)
              ? null
              : StringUtils.fromString(deleteDistributionRequest.getId());

      if (!(value == null || value.isEmpty())) {
        request.addParameter(name, value);
      }
    } else {
      uriResourcePath =
          uriResourcePath.replace(
              "{Id}",
              (deleteDistributionRequest.getId() == null)
                  ? ""
                  : StringUtils.fromString(deleteDistributionRequest.getId()));
    }

    request.setResourcePath(uriResourcePath.replaceAll("//", "/"));

    for (Map.Entry<String, String> entry : STATIC_QUERY_PARAMS.entrySet()) {
      request.addParameter(entry.getKey(), entry.getValue());
    }

    return request;
  }