@java.lang.Override
  public int hashCode() {
    if (memoizedHashCode != 0) {
      return memoizedHashCode;
    }
    int hash = 41;
    hash = (19 * hash) + getDescriptor().hashCode();
    hash = (37 * hash) + ID_FIELD_NUMBER;
    hash = (53 * hash) + getId().hashCode();
    hash = (37 * hash) + MODEL_FIELD_NUMBER;
    hash = (53 * hash) + getModel().hashCode();
    hash = (37 * hash) + MODEL_VERSION_ID_FIELD_NUMBER;
    hash = (53 * hash) + getModelVersionId().hashCode();
    hash = (37 * hash) + DISPLAY_NAME_FIELD_NUMBER;
    hash = (53 * hash) + getDisplayName().hashCode();
    if (hasCreateTime()) {
      hash = (37 * hash) + CREATE_TIME_FIELD_NUMBER;
      hash = (53 * hash) + getCreateTime().hashCode();
    }
    if (hasExplanationSpec()) {
      hash = (37 * hash) + EXPLANATION_SPEC_FIELD_NUMBER;
      hash = (53 * hash) + getExplanationSpec().hashCode();
    }
    hash = (37 * hash) + DISABLE_EXPLANATIONS_FIELD_NUMBER;
    hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getDisableExplanations());
    hash = (37 * hash) + SERVICE_ACCOUNT_FIELD_NUMBER;
    hash = (53 * hash) + getServiceAccount().hashCode();
    hash = (37 * hash) + DISABLE_CONTAINER_LOGGING_FIELD_NUMBER;
    hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getDisableContainerLogging());
    hash = (37 * hash) + ENABLE_ACCESS_LOGGING_FIELD_NUMBER;
    hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getEnableAccessLogging());
    if (hasPrivateEndpoints()) {
      hash = (37 * hash) + PRIVATE_ENDPOINTS_FIELD_NUMBER;
      hash = (53 * hash) + getPrivateEndpoints().hashCode();
    }
    if (hasFasterDeploymentConfig()) {
      hash = (37 * hash) + FASTER_DEPLOYMENT_CONFIG_FIELD_NUMBER;
      hash = (53 * hash) + getFasterDeploymentConfig().hashCode();
    }
    if (hasStatus()) {
      hash = (37 * hash) + STATUS_FIELD_NUMBER;
      hash = (53 * hash) + getStatus().hashCode();
    }
    if (!internalGetSystemLabels().getMap().isEmpty()) {
      hash = (37 * hash) + SYSTEM_LABELS_FIELD_NUMBER;
      hash = (53 * hash) + internalGetSystemLabels().hashCode();
    }
    if (hasSpeculativeDecodingSpec()) {
      hash = (37 * hash) + SPECULATIVE_DECODING_SPEC_FIELD_NUMBER;
      hash = (53 * hash) + getSpeculativeDecodingSpec().hashCode();
    }
    switch (predictionResourcesCase_) {
      case 7:
        hash = (37 * hash) + DEDICATED_RESOURCES_FIELD_NUMBER;
        hash = (53 * hash) + getDedicatedResources().hashCode();
        break;
      case 8:
        hash = (37 * hash) + AUTOMATIC_RESOURCES_FIELD_NUMBER;
        hash = (53 * hash) + getAutomaticResources().hashCode();
        break;
      case 17:
        hash = (37 * hash) + SHARED_RESOURCES_FIELD_NUMBER;
        hash = (53 * hash) + getSharedResources().hashCode();
        break;
      case 0:
      default:
    }
    hash = (29 * hash) + getUnknownFields().hashCode();
    memoizedHashCode = hash;
    return hash;
  }
<pre>
Optional. Spec for configuring speculative decoding.
</pre>

<code>
.google.cloud.vertexai.v1.SpeculativeDecodingSpec speculative_decoding_spec = 30 [(.google.api.field_behavior) = OPTIONAL];
</code>
java-vertexai/proto-google-cloud-vertexai-v1/src/main/java/com/google/cloud/vertexai/api/DeployedModel.java