@Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append("{");
        if (getStackId() != null)
            sb.append("StackId: ").append(getStackId()).append(",");
        if (getLogicalResourceId() != null)
            sb.append("LogicalResourceId: ").append(getLogicalResourceId()).append(",");
        if (getPhysicalResourceId() != null)
            sb.append("PhysicalResourceId: ").append(getPhysicalResourceId()).append(",");
        if (getPhysicalResourceIdContext() != null)
            sb.append("PhysicalResourceIdContext: ").append(getPhysicalResourceIdContext()).append(",");
        if (getResourceType() != null)
            sb.append("ResourceType: ").append(getResourceType()).append(",");
        if (getExpectedProperties() != null)
            sb.append("ExpectedProperties: ").append(getExpectedProperties()).append(",");
        if (getActualProperties() != null)
            sb.append("ActualProperties: ").append(getActualProperties()).append(",");
        if (getPropertyDifferences() != null)
            sb.append("PropertyDifferences: ").append(getPropertyDifferences()).append(",");
        if (getStackResourceDriftStatus() != null)
            sb.append("StackResourceDriftStatus: ").append(getStackResourceDriftStatus()).append(",");
        if (getTimestamp() != null)
            sb.append("Timestamp: ").append(getTimestamp()).append(",");
        if (getModuleInfo() != null)
            sb.append("ModuleInfo: ").append(getModuleInfo());
        sb.append("}");
        return sb.toString();
    }
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-cloudformation/src/main/java/com/amazonaws/services/cloudformation/model/StackResourceDrift.java