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

        if (obj instanceof UtteranceSpecification == false)
            return false;
        UtteranceSpecification other = (UtteranceSpecification) obj;
        if (other.getBotAliasId() == null ^ this.getBotAliasId() == null)
            return false;
        if (other.getBotAliasId() != null && other.getBotAliasId().equals(this.getBotAliasId()) == false)
            return false;
        if (other.getBotVersion() == null ^ this.getBotVersion() == null)
            return false;
        if (other.getBotVersion() != null && other.getBotVersion().equals(this.getBotVersion()) == false)
            return false;
        if (other.getLocaleId() == null ^ this.getLocaleId() == null)
            return false;
        if (other.getLocaleId() != null && other.getLocaleId().equals(this.getLocaleId()) == false)
            return false;
        if (other.getSessionId() == null ^ this.getSessionId() == null)
            return false;
        if (other.getSessionId() != null && other.getSessionId().equals(this.getSessionId()) == false)
            return false;
        if (other.getChannel() == null ^ this.getChannel() == null)
            return false;
        if (other.getChannel() != null && other.getChannel().equals(this.getChannel()) == false)
            return false;
        if (other.getMode() == null ^ this.getMode() == null)
            return false;
        if (other.getMode() != null && other.getMode().equals(this.getMode()) == false)
            return false;
        if (other.getConversationStartTime() == null ^ this.getConversationStartTime() == null)
            return false;
        if (other.getConversationStartTime() != null && other.getConversationStartTime().equals(this.getConversationStartTime()) == false)
            return false;
        if (other.getConversationEndTime() == null ^ this.getConversationEndTime() == null)
            return false;
        if (other.getConversationEndTime() != null && other.getConversationEndTime().equals(this.getConversationEndTime()) == false)
            return false;
        if (other.getUtterance() == null ^ this.getUtterance() == null)
            return false;
        if (other.getUtterance() != null && other.getUtterance().equals(this.getUtterance()) == false)
            return false;
        if (other.getUtteranceTimestamp() == null ^ this.getUtteranceTimestamp() == null)
            return false;
        if (other.getUtteranceTimestamp() != null && other.getUtteranceTimestamp().equals(this.getUtteranceTimestamp()) == false)
            return false;
        if (other.getAudioVoiceDurationMillis() == null ^ this.getAudioVoiceDurationMillis() == null)
            return false;
        if (other.getAudioVoiceDurationMillis() != null && other.getAudioVoiceDurationMillis().equals(this.getAudioVoiceDurationMillis()) == false)
            return false;
        if (other.getUtteranceUnderstood() == null ^ this.getUtteranceUnderstood() == null)
            return false;
        if (other.getUtteranceUnderstood() != null && other.getUtteranceUnderstood().equals(this.getUtteranceUnderstood()) == false)
            return false;
        if (other.getInputType() == null ^ this.getInputType() == null)
            return false;
        if (other.getInputType() != null && other.getInputType().equals(this.getInputType()) == false)
            return false;
        if (other.getOutputType() == null ^ this.getOutputType() == null)
            return false;
        if (other.getOutputType() != null && other.getOutputType().equals(this.getOutputType()) == false)
            return false;
        if (other.getAssociatedIntentName() == null ^ this.getAssociatedIntentName() == null)
            return false;
        if (other.getAssociatedIntentName() != null && other.getAssociatedIntentName().equals(this.getAssociatedIntentName()) == false)
            return false;
        if (other.getAssociatedSlotName() == null ^ this.getAssociatedSlotName() == null)
            return false;
        if (other.getAssociatedSlotName() != null && other.getAssociatedSlotName().equals(this.getAssociatedSlotName()) == false)
            return false;
        if (other.getIntentState() == null ^ this.getIntentState() == null)
            return false;
        if (other.getIntentState() != null && other.getIntentState().equals(this.getIntentState()) == false)
            return false;
        if (other.getDialogActionType() == null ^ this.getDialogActionType() == null)
            return false;
        if (other.getDialogActionType() != null && other.getDialogActionType().equals(this.getDialogActionType()) == false)
            return false;
        if (other.getBotResponseAudioVoiceId() == null ^ this.getBotResponseAudioVoiceId() == null)
            return false;
        if (other.getBotResponseAudioVoiceId() != null && other.getBotResponseAudioVoiceId().equals(this.getBotResponseAudioVoiceId()) == false)
            return false;
        if (other.getSlotsFilledInSession() == null ^ this.getSlotsFilledInSession() == null)
            return false;
        if (other.getSlotsFilledInSession() != null && other.getSlotsFilledInSession().equals(this.getSlotsFilledInSession()) == false)
            return false;
        if (other.getUtteranceRequestId() == null ^ this.getUtteranceRequestId() == null)
            return false;
        if (other.getUtteranceRequestId() != null && other.getUtteranceRequestId().equals(this.getUtteranceRequestId()) == false)
            return false;
        if (other.getBotResponses() == null ^ this.getBotResponses() == null)
            return false;
        if (other.getBotResponses() != null && other.getBotResponses().equals(this.getBotResponses()) == 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-lexmodelsv2/src/main/java/com/amazonaws/services/lexmodelsv2/model/UtteranceSpecification.java