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

        if (obj instanceof AdditionalDetail == false)
            return false;
        AdditionalDetail other = (AdditionalDetail) obj;
        if (other.getAdditionalDetailType() == null ^ this.getAdditionalDetailType() == null)
            return false;
        if (other.getAdditionalDetailType() != null && other.getAdditionalDetailType().equals(this.getAdditionalDetailType()) == false)
            return false;
        if (other.getComponent() == null ^ this.getComponent() == null)
            return false;
        if (other.getComponent() != null && other.getComponent().equals(this.getComponent()) == false)
            return false;
        if (other.getVpcEndpointService() == null ^ this.getVpcEndpointService() == null)
            return false;
        if (other.getVpcEndpointService() != null && other.getVpcEndpointService().equals(this.getVpcEndpointService()) == false)
            return false;
        if (other.getRuleOptions() == null ^ this.getRuleOptions() == null)
            return false;
        if (other.getRuleOptions() != null && other.getRuleOptions().equals(this.getRuleOptions()) == false)
            return false;
        if (other.getRuleGroupTypePairs() == null ^ this.getRuleGroupTypePairs() == null)
            return false;
        if (other.getRuleGroupTypePairs() != null && other.getRuleGroupTypePairs().equals(this.getRuleGroupTypePairs()) == false)
            return false;
        if (other.getRuleGroupRuleOptionsPairs() == null ^ this.getRuleGroupRuleOptionsPairs() == null)
            return false;
        if (other.getRuleGroupRuleOptionsPairs() != null && other.getRuleGroupRuleOptionsPairs().equals(this.getRuleGroupRuleOptionsPairs()) == false)
            return false;
        if (other.getServiceName() == null ^ this.getServiceName() == null)
            return false;
        if (other.getServiceName() != null && other.getServiceName().equals(this.getServiceName()) == false)
            return false;
        if (other.getLoadBalancers() == null ^ this.getLoadBalancers() == null)
            return false;
        if (other.getLoadBalancers() != null && other.getLoadBalancers().equals(this.getLoadBalancers()) == false)
            return false;
        return true;
    }
Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be
redacted from this string using a placeholder value.

@return A string representation of this object.

@see java.lang.Object#toString()
aws-java-sdk-ec2/src/main/java/com/amazonaws/services/ec2/model/AdditionalDetail.java