@java.lang.Override
  public boolean equals(final java.lang.Object obj) {
    if (obj == this) {
      return true;
    }
    if (!(obj instanceof com.google.cloud.vision.v1p4beta1.AnnotateImageResponse)) {
      return super.equals(obj);
    }
    com.google.cloud.vision.v1p4beta1.AnnotateImageResponse other =
        (com.google.cloud.vision.v1p4beta1.AnnotateImageResponse) obj;

    if (!getFaceAnnotationsList().equals(other.getFaceAnnotationsList())) return false;
    if (!getLandmarkAnnotationsList().equals(other.getLandmarkAnnotationsList())) return false;
    if (!getLogoAnnotationsList().equals(other.getLogoAnnotationsList())) return false;
    if (!getLabelAnnotationsList().equals(other.getLabelAnnotationsList())) return false;
    if (!getLocalizedObjectAnnotationsList().equals(other.getLocalizedObjectAnnotationsList()))
      return false;
    if (!getTextAnnotationsList().equals(other.getTextAnnotationsList())) return false;
    if (hasFullTextAnnotation() != other.hasFullTextAnnotation()) return false;
    if (hasFullTextAnnotation()) {
      if (!getFullTextAnnotation().equals(other.getFullTextAnnotation())) return false;
    }
    if (hasSafeSearchAnnotation() != other.hasSafeSearchAnnotation()) return false;
    if (hasSafeSearchAnnotation()) {
      if (!getSafeSearchAnnotation().equals(other.getSafeSearchAnnotation())) return false;
    }
    if (hasImagePropertiesAnnotation() != other.hasImagePropertiesAnnotation()) return false;
    if (hasImagePropertiesAnnotation()) {
      if (!getImagePropertiesAnnotation().equals(other.getImagePropertiesAnnotation()))
        return false;
    }
    if (hasCropHintsAnnotation() != other.hasCropHintsAnnotation()) return false;
    if (hasCropHintsAnnotation()) {
      if (!getCropHintsAnnotation().equals(other.getCropHintsAnnotation())) return false;
    }
    if (hasWebDetection() != other.hasWebDetection()) return false;
    if (hasWebDetection()) {
      if (!getWebDetection().equals(other.getWebDetection())) return false;
    }
    if (hasProductSearchResults() != other.hasProductSearchResults()) return false;
    if (hasProductSearchResults()) {
      if (!getProductSearchResults().equals(other.getProductSearchResults())) return false;
    }
    if (hasError() != other.hasError()) return false;
    if (hasError()) {
      if (!getError().equals(other.getError())) return false;
    }
    if (hasContext() != other.hasContext()) return false;
    if (hasContext()) {
      if (!getContext().equals(other.getContext())) return false;
    }
    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
    return true;
  }
<pre>
If present, contextual information is needed to understand where this image
comes from.
</pre>

<code>.google.cloud.vision.v1p4beta1.ImageAnnotationContext context = 21;</code>
java-vision/proto-google-cloud-vision-v1p4beta1/src/main/java/com/google/cloud/vision/v1p4beta1/AnnotateImageResponse.java