@java.lang.Override
  public int hashCode() {
    if (memoizedHashCode != 0) {
      return memoizedHashCode;
    }
    int hash = 41;
    hash = (19 * hash) + getDescriptor().hashCode();
    if (hasExperimentalConfig()) {
      hash = (37 * hash) + EXPERIMENTAL_CONFIG_FIELD_NUMBER;
      hash = (53 * hash) + getExperimentalConfig().hashCode();
    }
    switch (processorConfigCase_) {
      case 9:
        hash = (37 * hash) + VIDEO_STREAM_INPUT_CONFIG_FIELD_NUMBER;
        hash = (53 * hash) + getVideoStreamInputConfig().hashCode();
        break;
      case 20:
        hash = (37 * hash) + AI_ENABLED_DEVICES_INPUT_CONFIG_FIELD_NUMBER;
        hash = (53 * hash) + getAiEnabledDevicesInputConfig().hashCode();
        break;
      case 10:
        hash = (37 * hash) + MEDIA_WAREHOUSE_CONFIG_FIELD_NUMBER;
        hash = (53 * hash) + getMediaWarehouseConfig().hashCode();
        break;
      case 11:
        hash = (37 * hash) + PERSON_BLUR_CONFIG_FIELD_NUMBER;
        hash = (53 * hash) + getPersonBlurConfig().hashCode();
        break;
      case 12:
        hash = (37 * hash) + OCCUPANCY_COUNT_CONFIG_FIELD_NUMBER;
        hash = (53 * hash) + getOccupancyCountConfig().hashCode();
        break;
      case 15:
        hash = (37 * hash) + PERSON_VEHICLE_DETECTION_CONFIG_FIELD_NUMBER;
        hash = (53 * hash) + getPersonVehicleDetectionConfig().hashCode();
        break;
      case 13:
        hash = (37 * hash) + VERTEX_AUTOML_VISION_CONFIG_FIELD_NUMBER;
        hash = (53 * hash) + getVertexAutomlVisionConfig().hashCode();
        break;
      case 14:
        hash = (37 * hash) + VERTEX_AUTOML_VIDEO_CONFIG_FIELD_NUMBER;
        hash = (53 * hash) + getVertexAutomlVideoConfig().hashCode();
        break;
      case 17:
        hash = (37 * hash) + VERTEX_CUSTOM_CONFIG_FIELD_NUMBER;
        hash = (53 * hash) + getVertexCustomConfig().hashCode();
        break;
      case 18:
        hash = (37 * hash) + GENERAL_OBJECT_DETECTION_CONFIG_FIELD_NUMBER;
        hash = (53 * hash) + getGeneralObjectDetectionConfig().hashCode();
        break;
      case 19:
        hash = (37 * hash) + BIG_QUERY_CONFIG_FIELD_NUMBER;
        hash = (53 * hash) + getBigQueryConfig().hashCode();
        break;
      case 27:
        hash = (37 * hash) + GCS_OUTPUT_CONFIG_FIELD_NUMBER;
        hash = (53 * hash) + getGcsOutputConfig().hashCode();
        break;
      case 21:
        hash = (37 * hash) + PRODUCT_RECOGNIZER_CONFIG_FIELD_NUMBER;
        hash = (53 * hash) + getProductRecognizerConfig().hashCode();
        break;
      case 22:
        hash = (37 * hash) + PERSONAL_PROTECTIVE_EQUIPMENT_DETECTION_CONFIG_FIELD_NUMBER;
        hash = (53 * hash) + getPersonalProtectiveEquipmentDetectionConfig().hashCode();
        break;
      case 25:
        hash = (37 * hash) + TAG_RECOGNIZER_CONFIG_FIELD_NUMBER;
        hash = (53 * hash) + getTagRecognizerConfig().hashCode();
        break;
      case 28:
        hash = (37 * hash) + UNIVERSAL_INPUT_CONFIG_FIELD_NUMBER;
        hash = (53 * hash) + getUniversalInputConfig().hashCode();
        break;
      case 0:
      default:
    }
    hash = (29 * hash) + getUnknownFields().hashCode();
    memoizedHashCode = hash;
    return hash;
  }
<pre>
Experimental configurations. Structured object containing not-yet-stable
processor parameters.
</pre>

<code>.google.protobuf.Struct experimental_config = 26;</code>
java-visionai/proto-google-cloud-visionai-v1/src/main/java/com/google/cloud/visionai/v1/ProcessorConfig.java