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

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

    if (other.getGroupName() == null ^ this.getGroupName() == null) return false;
    if (other.getGroupName() != null && other.getGroupName().equals(this.getGroupName()) == false)
      return false;
    if (other.getGroupId() == null ^ this.getGroupId() == null) return false;
    if (other.getGroupId() != null && other.getGroupId().equals(this.getGroupId()) == false)
      return false;
    return true;
  }
  public Request<DeleteSecurityGroupRequest> marshall(
      DeleteSecurityGroupRequest deleteSecurityGroupRequest) {

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

    Request<DeleteSecurityGroupRequest> request =
        new DefaultRequest<DeleteSecurityGroupRequest>(deleteSecurityGroupRequest, "AmazonEC2");
    request.addParameter("Action", "DeleteSecurityGroup");
    request.addParameter("Version", "2012-06-15");

    if (deleteSecurityGroupRequest.getGroupName() != null) {
      request.addParameter(
          "GroupName", StringUtils.fromString(deleteSecurityGroupRequest.getGroupName()));
    }
    if (deleteSecurityGroupRequest.getGroupId() != null) {
      request.addParameter(
          "GroupId", StringUtils.fromString(deleteSecurityGroupRequest.getGroupId()));
    }

    return request;
  }