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

    if (obj instanceof AuthorizeCacheSecurityGroupIngressRequest == false) return false;
    AuthorizeCacheSecurityGroupIngressRequest other =
        (AuthorizeCacheSecurityGroupIngressRequest) obj;

    if (other.getCacheSecurityGroupName() == null ^ this.getCacheSecurityGroupName() == null)
      return false;
    if (other.getCacheSecurityGroupName() != null
        && other.getCacheSecurityGroupName().equals(this.getCacheSecurityGroupName()) == false)
      return false;
    if (other.getEC2SecurityGroupName() == null ^ this.getEC2SecurityGroupName() == null)
      return false;
    if (other.getEC2SecurityGroupName() != null
        && other.getEC2SecurityGroupName().equals(this.getEC2SecurityGroupName()) == false)
      return false;
    if (other.getEC2SecurityGroupOwnerId() == null ^ this.getEC2SecurityGroupOwnerId() == null)
      return false;
    if (other.getEC2SecurityGroupOwnerId() != null
        && other.getEC2SecurityGroupOwnerId().equals(this.getEC2SecurityGroupOwnerId()) == false)
      return false;
    return true;
  }
  public Request<AuthorizeCacheSecurityGroupIngressRequest> marshall(
      AuthorizeCacheSecurityGroupIngressRequest authorizeCacheSecurityGroupIngressRequest) {

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

    Request<AuthorizeCacheSecurityGroupIngressRequest> request =
        new DefaultRequest<AuthorizeCacheSecurityGroupIngressRequest>(
            authorizeCacheSecurityGroupIngressRequest, "AmazonElastiCache");
    request.addParameter("Action", "AuthorizeCacheSecurityGroupIngress");
    request.addParameter("Version", "2015-02-02");
    request.setHttpMethod(HttpMethodName.POST);

    if (authorizeCacheSecurityGroupIngressRequest.getCacheSecurityGroupName() != null) {
      request.addParameter(
          "CacheSecurityGroupName",
          StringUtils.fromString(
              authorizeCacheSecurityGroupIngressRequest.getCacheSecurityGroupName()));
    }

    if (authorizeCacheSecurityGroupIngressRequest.getEC2SecurityGroupName() != null) {
      request.addParameter(
          "EC2SecurityGroupName",
          StringUtils.fromString(
              authorizeCacheSecurityGroupIngressRequest.getEC2SecurityGroupName()));
    }

    if (authorizeCacheSecurityGroupIngressRequest.getEC2SecurityGroupOwnerId() != null) {
      request.addParameter(
          "EC2SecurityGroupOwnerId",
          StringUtils.fromString(
              authorizeCacheSecurityGroupIngressRequest.getEC2SecurityGroupOwnerId()));
    }

    return request;
  }