/*
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
 * in compliance with the License. You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under the License
 * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
 * or implied. See the License for the specific language governing permissions and limitations under
 * the License.
 */
/*
 * This code was generated by https://github.com/googleapis/google-api-java-client-services/
 * Modify at your own risk.
 */

package com.google.api.services.contentwarehouse.v1.model;

/**
 * Signals to be used by the Prefulfillment Ranker. Derived from the ParsingSignals and
 * GroundingSignals carried by the FunctionCall. LINT.IfChange Next ID: 62
 *
 * <p> This is the Java data model class that specifies how to parse/serialize into the JSON that is
 * transmitted over HTTP when working with the Document AI Warehouse API. For a detailed explanation
 * see:
 * <a href="https://developers.google.com/api-client-library/java/google-http-java-client/json">https://developers.google.com/api-client-library/java/google-http-java-client/json</a>
 * </p>
 *
 * @author Google, Inc.
 */
@SuppressWarnings("javadoc")
public final class AssistantPrefulfillmentRankerPrefulfillmentSignals extends com.google.api.client.json.GenericJson {

  /**
   * Assistant User Interaction Score for binding set.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.Float bindingSetAuis;

  /**
   * BindingSet level invalid reason. This is only useful when the bindingset is invalid after
   * running the horizontal check in HGR. More details: go/gb-infeasible.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.String bindingSetInvalidReason;

  /**
   * Pauis score for the binding set
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.Float bindingSetPauis;

  /**
   * BindingSet level validity. When one of the GPs returns invalid resolution, or the combined
   * bindingset is invalid, this enum will indidate the validity. More details: go/gb-infeasible.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.String bindingSetValidity;

  /**
   * A parsing score that is independently calibrated by each parser/IG.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.Double calibratedParsingScore;

  /**
   * Whether the intent is dominant according to NSP deep-media.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.Boolean deepMediaDominant;

  /**
   * Indicates interpretation dominance predicted by KScorer
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.Boolean dominant;

  /**
   * The total effective length of the spans for the arguments used to construct the parse. May
   * include vertical specific adjustments. Eg: For the query [delete my 7 p.m. alarm called
   * chicken] and intent Delete_alarm(alarm_object=RD(category=AlarmObject( label="chicken",
   * trigger_time_datetime=<< 7 PM >>))), the effective argument span is "7 p.m." + "chicken" (total
   * length of 13).
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.Float effectiveArgSpanLength;

  /**
   * Whether this is a fulfillable, dominant Media intent.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.Boolean fulfillableDominantMedia;

  /**
   * Whether or not the intent was generated by a legacy Aqua domain that PFR should care about.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.Boolean generatedByLegacyAquaDomain;

  /**
   * Grounding Signals. Score indicating how grounded the intent is, populated by the Grounding Box.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.Double groundabilityScore;

  /**
   * Grounding Provider related ranking features, including general Grounding Provider ranking
   * features(shared among multiple GPs) and specific Grounding Provider ranking features(provided
   * by a specific GP).
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private AssistantGroundingRankerGroundingProviderFeatures groundingProviderFeatures;

  /**
   * Whether the interpretation has a Search answer group object, signifying it came from Search
   * resolution.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.Boolean hasAnswerGroup;

  /**
   * This is a cross-intent feature which is calculated by iterating all intent candidates. This
   * feature should be populated in post-IG stage (before GB).
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.Float inQueryMaxEffectiveArgSpanLength;

  /**
   * intent_name is used by PFR ensemble model. See go/pfr_ha_launch_doc
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.String intentName;

  /**
   * QUS intent-based ranking signals. Assistant User Interaction Score which is aggregated using
   * intent name.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.Double intentNameAuisScore;

  /**
   * Assistant User Interaction Score which is aggregated using intent name from exp laelaps.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.Double intentNameAuisScoreExp;

  /**
   * Intent level Pauis User Interaction Score.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.Float intentNamePauis;

  /**
   * intent_type differentiates between intents that share the top level intent name. For eg: for
   * TV_FALLBACK_SEARCH_INTENT, the top level intent name must be "Find_media" and the media_object
   * argument within it must be of type "Media_unspecified".
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.String intentType;

  /**
   * Feasibility of fulfilling the binding set. Eg: For PlayMedia, this is equivalent to
   * playability. More details: go/hgr-feasibility-feature.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.Boolean isFeasible;

  /**
   * Whether the intent is fully grounded.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.Boolean isFullyGrounded;

  /**
   * Used for PFR manual rule to prefer high confidence podcast intent (e.g. topical, genre) over
   * generic podcast intents.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.Boolean isHighConfidencePodcastIntent;

  /**
   * Whether the intent is a media control intent.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.Boolean isMediaControlIntent;

  /**
   * Whether the intent is a PlayGenericMusic-type intent.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.Boolean isPlayGenericMusic;

  /**
   * Used for PFR manual rule to prefer high confidence podcast intent (e.g. topical, genre) over
   * generic podcast intents.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.Boolean isPodcastGenericIntent;

  /**
   * Whether the intent is a podcast intent.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.Boolean isPodcastIntent;

  /**
   * Whether the intent is an intent marked disabled by the Sage IG.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.Boolean isSageDisabledIntent;

  /**
   * Whether this intent was generated by Sage.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.Boolean isSageIntent;

  /**
   * Whether the intent is a media object tvm intent.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.Boolean isTvmIntent;

  /**
   * Whether the intent is a Smarthome-domain intent with valid device arguments.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.Boolean isValidSmarthomeIntent;

  /**
   * Whether the intent is a media object video intent.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.Boolean isVideoIntent;

  /**
   * The rank order of the interpretation as determined by kscorer. The kscorer-determined dominant
   * interpretation, if any, gets a rank of 0. The remaining N interpretations get a rank of 1
   * through N.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.Integer kscorerRank;

  /**
   * Learn and adapt(go/laa) related features. Design doc: go/laa-profile-signal-for-grounding.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private AssistantGroundingRankerLaaFeatures laaFeatures;

  /**
   * This feature is always false / no-op in serving time. In training time, this feature may be set
   * true on specific examples for weighted training where when this signal is true, only cross-
   * intent level features are used for training and other candidate level features are masked (set
   * as missing).
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.Boolean maskCandidateLevelFeatures;

  /**
   * The maximum score assigned by the Horizontal Grounding Ranker (HGR) across all of the intent's
   * binding sets.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.Double maxHgrScoreAcrossBindingSets;

  /**
   * Rank of the intent as reported by NSP.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.Integer nspRank;

  /**
   * Number of alternative hypotheses from speech recognition(S3).
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.Float numAlternativeHypothesis;

  /**
   * Sum of the number of constraints used by the Grounding Box to ground each variable.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.Double numConstraints;

  /**
   * Sum of the number of constraints satisfied for each variable. Depending on the match score for
   * a constraint, this number can be fractional and is in the range [0, num_constraints]. Populated
   * by the Grounding Box.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.Double numConstraintsSatisfied;

  /**
   * Number of groundable arguments the intent has, populated by the Grounding Box.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.Double numGroundableArgs;

  /**
   * Number of grounded arguments the intent has, populated by the Grounding Box.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.Double numGroundedArgs;

  /**
   * Signals as proposed in go/improved-grounding-signals. Number of arguments, possibly nested,
   * that the Grounding Box tried to ground.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.Double numVariables;

  /**
   * Number of arguments, possibly nested, that the Grounding Box was able to ground. This includes
   * ambiguously grounded arguments.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.Double numVariablesGrounded;

  /**
   * A ID corresponding to which bucket a given parsing score belongs in.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.Integer parsingScoreMse8BucketId;

  /**
   * Query understanding phase the intent was produced in.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.String phase;

  /**
   * Cosine similarity between predicted query-to-term model and assistant intent-type-based salient
   * terms. This is intended to be only used for ACE ranking and only populated for assistant
   * traffic.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.Double pq2tVsAssistantIbstCosine;

  /**
   * Cosine similarity between predicted query-to-term model and intent-type-based salient terms.
   * This is intended to be used as a backoff to pq2t_vs_qibst_cosine if it is missing.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.Double pq2tVsIbstCosine;

  /**
   * Intent confidence predicted by the AssistantVerticalClassifier QRewrite servlet.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.Float predictedIntentConfidence;

  /**
   * Used in HGR to modify the ranker based on input experimental flag and intent name.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.String rankerName;

  /**
   * The determination made by the SearchDispatchingConfig as to whether and how this interpretation
   * should be dispatched to Search.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.String searchDispatch;

  /**
   * SmartHome intent metadata used for the SmartHome business-rules twiddler.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private AssistantPfrSmartHomeIntentMetadata smarthomeIntentMetadata;

  /**
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.String subIntentType;

  /**
   * Average of per-word confidence for top speech recognition hypothesis. The value is from
   * RecognizerHypothesisLog:
   * http://google3/logs/proto/speech/service/recognizer_log.proto?l=848=281400256
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.Float topHypothesisConfidence;

  /**
   * Horizontal feature that stores information about confidence scores for each resolution within
   * the binding set.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.Float verticalConfidenceScore;

  /**
   * Assistant User Interaction Score for binding set.
   * @return value or {@code null} for none
   */
  public java.lang.Float getBindingSetAuis() {
    return bindingSetAuis;
  }

  /**
   * Assistant User Interaction Score for binding set.
   * @param bindingSetAuis bindingSetAuis or {@code null} for none
   */
  public AssistantPrefulfillmentRankerPrefulfillmentSignals setBindingSetAuis(java.lang.Float bindingSetAuis) {
    this.bindingSetAuis = bindingSetAuis;
    return this;
  }

  /**
   * BindingSet level invalid reason. This is only useful when the bindingset is invalid after
   * running the horizontal check in HGR. More details: go/gb-infeasible.
   * @return value or {@code null} for none
   */
  public java.lang.String getBindingSetInvalidReason() {
    return bindingSetInvalidReason;
  }

  /**
   * BindingSet level invalid reason. This is only useful when the bindingset is invalid after
   * running the horizontal check in HGR. More details: go/gb-infeasible.
   * @param bindingSetInvalidReason bindingSetInvalidReason or {@code null} for none
   */
  public AssistantPrefulfillmentRankerPrefulfillmentSignals setBindingSetInvalidReason(java.lang.String bindingSetInvalidReason) {
    this.bindingSetInvalidReason = bindingSetInvalidReason;
    return this;
  }

  /**
   * Pauis score for the binding set
   * @return value or {@code null} for none
   */
  public java.lang.Float getBindingSetPauis() {
    return bindingSetPauis;
  }

  /**
   * Pauis score for the binding set
   * @param bindingSetPauis bindingSetPauis or {@code null} for none
   */
  public AssistantPrefulfillmentRankerPrefulfillmentSignals setBindingSetPauis(java.lang.Float bindingSetPauis) {
    this.bindingSetPauis = bindingSetPauis;
    return this;
  }

  /**
   * BindingSet level validity. When one of the GPs returns invalid resolution, or the combined
   * bindingset is invalid, this enum will indidate the validity. More details: go/gb-infeasible.
   * @return value or {@code null} for none
   */
  public java.lang.String getBindingSetValidity() {
    return bindingSetValidity;
  }

  /**
   * BindingSet level validity. When one of the GPs returns invalid resolution, or the combined
   * bindingset is invalid, this enum will indidate the validity. More details: go/gb-infeasible.
   * @param bindingSetValidity bindingSetValidity or {@code null} for none
   */
  public AssistantPrefulfillmentRankerPrefulfillmentSignals setBindingSetValidity(java.lang.String bindingSetValidity) {
    this.bindingSetValidity = bindingSetValidity;
    return this;
  }

  /**
   * A parsing score that is independently calibrated by each parser/IG.
   * @return value or {@code null} for none
   */
  public java.lang.Double getCalibratedParsingScore() {
    return calibratedParsingScore;
  }

  /**
   * A parsing score that is independently calibrated by each parser/IG.
   * @param calibratedParsingScore calibratedParsingScore or {@code null} for none
   */
  public AssistantPrefulfillmentRankerPrefulfillmentSignals setCalibratedParsingScore(java.lang.Double calibratedParsingScore) {
    this.calibratedParsingScore = calibratedParsingScore;
    return this;
  }

  /**
   * Whether the intent is dominant according to NSP deep-media.
   * @return value or {@code null} for none
   */
  public java.lang.Boolean getDeepMediaDominant() {
    return deepMediaDominant;
  }

  /**
   * Whether the intent is dominant according to NSP deep-media.
   * @param deepMediaDominant deepMediaDominant or {@code null} for none
   */
  public AssistantPrefulfillmentRankerPrefulfillmentSignals setDeepMediaDominant(java.lang.Boolean deepMediaDominant) {
    this.deepMediaDominant = deepMediaDominant;
    return this;
  }

  /**
   * Indicates interpretation dominance predicted by KScorer
   * @return value or {@code null} for none
   */
  public java.lang.Boolean getDominant() {
    return dominant;
  }

  /**
   * Indicates interpretation dominance predicted by KScorer
   * @param dominant dominant or {@code null} for none
   */
  public AssistantPrefulfillmentRankerPrefulfillmentSignals setDominant(java.lang.Boolean dominant) {
    this.dominant = dominant;
    return this;
  }

  /**
   * The total effective length of the spans for the arguments used to construct the parse. May
   * include vertical specific adjustments. Eg: For the query [delete my 7 p.m. alarm called
   * chicken] and intent Delete_alarm(alarm_object=RD(category=AlarmObject( label="chicken",
   * trigger_time_datetime=<< 7 PM >>))), the effective argument span is "7 p.m." + "chicken" (total
   * length of 13).
   * @return value or {@code null} for none
   */
  public java.lang.Float getEffectiveArgSpanLength() {
    return effectiveArgSpanLength;
  }

  /**
   * The total effective length of the spans for the arguments used to construct the parse. May
   * include vertical specific adjustments. Eg: For the query [delete my 7 p.m. alarm called
   * chicken] and intent Delete_alarm(alarm_object=RD(category=AlarmObject( label="chicken",
   * trigger_time_datetime=<< 7 PM >>))), the effective argument span is "7 p.m." + "chicken" (total
   * length of 13).
   * @param effectiveArgSpanLength effectiveArgSpanLength or {@code null} for none
   */
  public AssistantPrefulfillmentRankerPrefulfillmentSignals setEffectiveArgSpanLength(java.lang.Float effectiveArgSpanLength) {
    this.effectiveArgSpanLength = effectiveArgSpanLength;
    return this;
  }

  /**
   * Whether this is a fulfillable, dominant Media intent.
   * @return value or {@code null} for none
   */
  public java.lang.Boolean getFulfillableDominantMedia() {
    return fulfillableDominantMedia;
  }

  /**
   * Whether this is a fulfillable, dominant Media intent.
   * @param fulfillableDominantMedia fulfillableDominantMedia or {@code null} for none
   */
  public AssistantPrefulfillmentRankerPrefulfillmentSignals setFulfillableDominantMedia(java.lang.Boolean fulfillableDominantMedia) {
    this.fulfillableDominantMedia = fulfillableDominantMedia;
    return this;
  }

  /**
   * Whether or not the intent was generated by a legacy Aqua domain that PFR should care about.
   * @return value or {@code null} for none
   */
  public java.lang.Boolean getGeneratedByLegacyAquaDomain() {
    return generatedByLegacyAquaDomain;
  }

  /**
   * Whether or not the intent was generated by a legacy Aqua domain that PFR should care about.
   * @param generatedByLegacyAquaDomain generatedByLegacyAquaDomain or {@code null} for none
   */
  public AssistantPrefulfillmentRankerPrefulfillmentSignals setGeneratedByLegacyAquaDomain(java.lang.Boolean generatedByLegacyAquaDomain) {
    this.generatedByLegacyAquaDomain = generatedByLegacyAquaDomain;
    return this;
  }

  /**
   * Grounding Signals. Score indicating how grounded the intent is, populated by the Grounding Box.
   * @return value or {@code null} for none
   */
  public java.lang.Double getGroundabilityScore() {
    return groundabilityScore;
  }

  /**
   * Grounding Signals. Score indicating how grounded the intent is, populated by the Grounding Box.
   * @param groundabilityScore groundabilityScore or {@code null} for none
   */
  public AssistantPrefulfillmentRankerPrefulfillmentSignals setGroundabilityScore(java.lang.Double groundabilityScore) {
    this.groundabilityScore = groundabilityScore;
    return this;
  }

  /**
   * Grounding Provider related ranking features, including general Grounding Provider ranking
   * features(shared among multiple GPs) and specific Grounding Provider ranking features(provided
   * by a specific GP).
   * @return value or {@code null} for none
   */
  public AssistantGroundingRankerGroundingProviderFeatures getGroundingProviderFeatures() {
    return groundingProviderFeatures;
  }

  /**
   * Grounding Provider related ranking features, including general Grounding Provider ranking
   * features(shared among multiple GPs) and specific Grounding Provider ranking features(provided
   * by a specific GP).
   * @param groundingProviderFeatures groundingProviderFeatures or {@code null} for none
   */
  public AssistantPrefulfillmentRankerPrefulfillmentSignals setGroundingProviderFeatures(AssistantGroundingRankerGroundingProviderFeatures groundingProviderFeatures) {
    this.groundingProviderFeatures = groundingProviderFeatures;
    return this;
  }

  /**
   * Whether the interpretation has a Search answer group object, signifying it came from Search
   * resolution.
   * @return value or {@code null} for none
   */
  public java.lang.Boolean getHasAnswerGroup() {
    return hasAnswerGroup;
  }

  /**
   * Whether the interpretation has a Search answer group object, signifying it came from Search
   * resolution.
   * @param hasAnswerGroup hasAnswerGroup or {@code null} for none
   */
  public AssistantPrefulfillmentRankerPrefulfillmentSignals setHasAnswerGroup(java.lang.Boolean hasAnswerGroup) {
    this.hasAnswerGroup = hasAnswerGroup;
    return this;
  }

  /**
   * This is a cross-intent feature which is calculated by iterating all intent candidates. This
   * feature should be populated in post-IG stage (before GB).
   * @return value or {@code null} for none
   */
  public java.lang.Float getInQueryMaxEffectiveArgSpanLength() {
    return inQueryMaxEffectiveArgSpanLength;
  }

  /**
   * This is a cross-intent feature which is calculated by iterating all intent candidates. This
   * feature should be populated in post-IG stage (before GB).
   * @param inQueryMaxEffectiveArgSpanLength inQueryMaxEffectiveArgSpanLength or {@code null} for none
   */
  public AssistantPrefulfillmentRankerPrefulfillmentSignals setInQueryMaxEffectiveArgSpanLength(java.lang.Float inQueryMaxEffectiveArgSpanLength) {
    this.inQueryMaxEffectiveArgSpanLength = inQueryMaxEffectiveArgSpanLength;
    return this;
  }

  /**
   * intent_name is used by PFR ensemble model. See go/pfr_ha_launch_doc
   * @return value or {@code null} for none
   */
  public java.lang.String getIntentName() {
    return intentName;
  }

  /**
   * intent_name is used by PFR ensemble model. See go/pfr_ha_launch_doc
   * @param intentName intentName or {@code null} for none
   */
  public AssistantPrefulfillmentRankerPrefulfillmentSignals setIntentName(java.lang.String intentName) {
    this.intentName = intentName;
    return this;
  }

  /**
   * QUS intent-based ranking signals. Assistant User Interaction Score which is aggregated using
   * intent name.
   * @return value or {@code null} for none
   */
  public java.lang.Double getIntentNameAuisScore() {
    return intentNameAuisScore;
  }

  /**
   * QUS intent-based ranking signals. Assistant User Interaction Score which is aggregated using
   * intent name.
   * @param intentNameAuisScore intentNameAuisScore or {@code null} for none
   */
  public AssistantPrefulfillmentRankerPrefulfillmentSignals setIntentNameAuisScore(java.lang.Double intentNameAuisScore) {
    this.intentNameAuisScore = intentNameAuisScore;
    return this;
  }

  /**
   * Assistant User Interaction Score which is aggregated using intent name from exp laelaps.
   * @return value or {@code null} for none
   */
  public java.lang.Double getIntentNameAuisScoreExp() {
    return intentNameAuisScoreExp;
  }

  /**
   * Assistant User Interaction Score which is aggregated using intent name from exp laelaps.
   * @param intentNameAuisScoreExp intentNameAuisScoreExp or {@code null} for none
   */
  public AssistantPrefulfillmentRankerPrefulfillmentSignals setIntentNameAuisScoreExp(java.lang.Double intentNameAuisScoreExp) {
    this.intentNameAuisScoreExp = intentNameAuisScoreExp;
    return this;
  }

  /**
   * Intent level Pauis User Interaction Score.
   * @return value or {@code null} for none
   */
  public java.lang.Float getIntentNamePauis() {
    return intentNamePauis;
  }

  /**
   * Intent level Pauis User Interaction Score.
   * @param intentNamePauis intentNamePauis or {@code null} for none
   */
  public AssistantPrefulfillmentRankerPrefulfillmentSignals setIntentNamePauis(java.lang.Float intentNamePauis) {
    this.intentNamePauis = intentNamePauis;
    return this;
  }

  /**
   * intent_type differentiates between intents that share the top level intent name. For eg: for
   * TV_FALLBACK_SEARCH_INTENT, the top level intent name must be "Find_media" and the media_object
   * argument within it must be of type "Media_unspecified".
   * @return value or {@code null} for none
   */
  public java.lang.String getIntentType() {
    return intentType;
  }

  /**
   * intent_type differentiates between intents that share the top level intent name. For eg: for
   * TV_FALLBACK_SEARCH_INTENT, the top level intent name must be "Find_media" and the media_object
   * argument within it must be of type "Media_unspecified".
   * @param intentType intentType or {@code null} for none
   */
  public AssistantPrefulfillmentRankerPrefulfillmentSignals setIntentType(java.lang.String intentType) {
    this.intentType = intentType;
    return this;
  }

  /**
   * Feasibility of fulfilling the binding set. Eg: For PlayMedia, this is equivalent to
   * playability. More details: go/hgr-feasibility-feature.
   * @return value or {@code null} for none
   */
  public java.lang.Boolean getIsFeasible() {
    return isFeasible;
  }

  /**
   * Feasibility of fulfilling the binding set. Eg: For PlayMedia, this is equivalent to
   * playability. More details: go/hgr-feasibility-feature.
   * @param isFeasible isFeasible or {@code null} for none
   */
  public AssistantPrefulfillmentRankerPrefulfillmentSignals setIsFeasible(java.lang.Boolean isFeasible) {
    this.isFeasible = isFeasible;
    return this;
  }

  /**
   * Whether the intent is fully grounded.
   * @return value or {@code null} for none
   */
  public java.lang.Boolean getIsFullyGrounded() {
    return isFullyGrounded;
  }

  /**
   * Whether the intent is fully grounded.
   * @param isFullyGrounded isFullyGrounded or {@code null} for none
   */
  public AssistantPrefulfillmentRankerPrefulfillmentSignals setIsFullyGrounded(java.lang.Boolean isFullyGrounded) {
    this.isFullyGrounded = isFullyGrounded;
    return this;
  }

  /**
   * Used for PFR manual rule to prefer high confidence podcast intent (e.g. topical, genre) over
   * generic podcast intents.
   * @return value or {@code null} for none
   */
  public java.lang.Boolean getIsHighConfidencePodcastIntent() {
    return isHighConfidencePodcastIntent;
  }

  /**
   * Used for PFR manual rule to prefer high confidence podcast intent (e.g. topical, genre) over
   * generic podcast intents.
   * @param isHighConfidencePodcastIntent isHighConfidencePodcastIntent or {@code null} for none
   */
  public AssistantPrefulfillmentRankerPrefulfillmentSignals setIsHighConfidencePodcastIntent(java.lang.Boolean isHighConfidencePodcastIntent) {
    this.isHighConfidencePodcastIntent = isHighConfidencePodcastIntent;
    return this;
  }

  /**
   * Whether the intent is a media control intent.
   * @return value or {@code null} for none
   */
  public java.lang.Boolean getIsMediaControlIntent() {
    return isMediaControlIntent;
  }

  /**
   * Whether the intent is a media control intent.
   * @param isMediaControlIntent isMediaControlIntent or {@code null} for none
   */
  public AssistantPrefulfillmentRankerPrefulfillmentSignals setIsMediaControlIntent(java.lang.Boolean isMediaControlIntent) {
    this.isMediaControlIntent = isMediaControlIntent;
    return this;
  }

  /**
   * Whether the intent is a PlayGenericMusic-type intent.
   * @return value or {@code null} for none
   */
  public java.lang.Boolean getIsPlayGenericMusic() {
    return isPlayGenericMusic;
  }

  /**
   * Whether the intent is a PlayGenericMusic-type intent.
   * @param isPlayGenericMusic isPlayGenericMusic or {@code null} for none
   */
  public AssistantPrefulfillmentRankerPrefulfillmentSignals setIsPlayGenericMusic(java.lang.Boolean isPlayGenericMusic) {
    this.isPlayGenericMusic = isPlayGenericMusic;
    return this;
  }

  /**
   * Used for PFR manual rule to prefer high confidence podcast intent (e.g. topical, genre) over
   * generic podcast intents.
   * @return value or {@code null} for none
   */
  public java.lang.Boolean getIsPodcastGenericIntent() {
    return isPodcastGenericIntent;
  }

  /**
   * Used for PFR manual rule to prefer high confidence podcast intent (e.g. topical, genre) over
   * generic podcast intents.
   * @param isPodcastGenericIntent isPodcastGenericIntent or {@code null} for none
   */
  public AssistantPrefulfillmentRankerPrefulfillmentSignals setIsPodcastGenericIntent(java.lang.Boolean isPodcastGenericIntent) {
    this.isPodcastGenericIntent = isPodcastGenericIntent;
    return this;
  }

  /**
   * Whether the intent is a podcast intent.
   * @return value or {@code null} for none
   */
  public java.lang.Boolean getIsPodcastIntent() {
    return isPodcastIntent;
  }

  /**
   * Whether the intent is a podcast intent.
   * @param isPodcastIntent isPodcastIntent or {@code null} for none
   */
  public AssistantPrefulfillmentRankerPrefulfillmentSignals setIsPodcastIntent(java.lang.Boolean isPodcastIntent) {
    this.isPodcastIntent = isPodcastIntent;
    return this;
  }

  /**
   * Whether the intent is an intent marked disabled by the Sage IG.
   * @return value or {@code null} for none
   */
  public java.lang.Boolean getIsSageDisabledIntent() {
    return isSageDisabledIntent;
  }

  /**
   * Whether the intent is an intent marked disabled by the Sage IG.
   * @param isSageDisabledIntent isSageDisabledIntent or {@code null} for none
   */
  public AssistantPrefulfillmentRankerPrefulfillmentSignals setIsSageDisabledIntent(java.lang.Boolean isSageDisabledIntent) {
    this.isSageDisabledIntent = isSageDisabledIntent;
    return this;
  }

  /**
   * Whether this intent was generated by Sage.
   * @return value or {@code null} for none
   */
  public java.lang.Boolean getIsSageIntent() {
    return isSageIntent;
  }

  /**
   * Whether this intent was generated by Sage.
   * @param isSageIntent isSageIntent or {@code null} for none
   */
  public AssistantPrefulfillmentRankerPrefulfillmentSignals setIsSageIntent(java.lang.Boolean isSageIntent) {
    this.isSageIntent = isSageIntent;
    return this;
  }

  /**
   * Whether the intent is a media object tvm intent.
   * @return value or {@code null} for none
   */
  public java.lang.Boolean getIsTvmIntent() {
    return isTvmIntent;
  }

  /**
   * Whether the intent is a media object tvm intent.
   * @param isTvmIntent isTvmIntent or {@code null} for none
   */
  public AssistantPrefulfillmentRankerPrefulfillmentSignals setIsTvmIntent(java.lang.Boolean isTvmIntent) {
    this.isTvmIntent = isTvmIntent;
    return this;
  }

  /**
   * Whether the intent is a Smarthome-domain intent with valid device arguments.
   * @return value or {@code null} for none
   */
  public java.lang.Boolean getIsValidSmarthomeIntent() {
    return isValidSmarthomeIntent;
  }

  /**
   * Whether the intent is a Smarthome-domain intent with valid device arguments.
   * @param isValidSmarthomeIntent isValidSmarthomeIntent or {@code null} for none
   */
  public AssistantPrefulfillmentRankerPrefulfillmentSignals setIsValidSmarthomeIntent(java.lang.Boolean isValidSmarthomeIntent) {
    this.isValidSmarthomeIntent = isValidSmarthomeIntent;
    return this;
  }

  /**
   * Whether the intent is a media object video intent.
   * @return value or {@code null} for none
   */
  public java.lang.Boolean getIsVideoIntent() {
    return isVideoIntent;
  }

  /**
   * Whether the intent is a media object video intent.
   * @param isVideoIntent isVideoIntent or {@code null} for none
   */
  public AssistantPrefulfillmentRankerPrefulfillmentSignals setIsVideoIntent(java.lang.Boolean isVideoIntent) {
    this.isVideoIntent = isVideoIntent;
    return this;
  }

  /**
   * The rank order of the interpretation as determined by kscorer. The kscorer-determined dominant
   * interpretation, if any, gets a rank of 0. The remaining N interpretations get a rank of 1
   * through N.
   * @return value or {@code null} for none
   */
  public java.lang.Integer getKscorerRank() {
    return kscorerRank;
  }

  /**
   * The rank order of the interpretation as determined by kscorer. The kscorer-determined dominant
   * interpretation, if any, gets a rank of 0. The remaining N interpretations get a rank of 1
   * through N.
   * @param kscorerRank kscorerRank or {@code null} for none
   */
  public AssistantPrefulfillmentRankerPrefulfillmentSignals setKscorerRank(java.lang.Integer kscorerRank) {
    this.kscorerRank = kscorerRank;
    return this;
  }

  /**
   * Learn and adapt(go/laa) related features. Design doc: go/laa-profile-signal-for-grounding.
   * @return value or {@code null} for none
   */
  public AssistantGroundingRankerLaaFeatures getLaaFeatures() {
    return laaFeatures;
  }

  /**
   * Learn and adapt(go/laa) related features. Design doc: go/laa-profile-signal-for-grounding.
   * @param laaFeatures laaFeatures or {@code null} for none
   */
  public AssistantPrefulfillmentRankerPrefulfillmentSignals setLaaFeatures(AssistantGroundingRankerLaaFeatures laaFeatures) {
    this.laaFeatures = laaFeatures;
    return this;
  }

  /**
   * This feature is always false / no-op in serving time. In training time, this feature may be set
   * true on specific examples for weighted training where when this signal is true, only cross-
   * intent level features are used for training and other candidate level features are masked (set
   * as missing).
   * @return value or {@code null} for none
   */
  public java.lang.Boolean getMaskCandidateLevelFeatures() {
    return maskCandidateLevelFeatures;
  }

  /**
   * This feature is always false / no-op in serving time. In training time, this feature may be set
   * true on specific examples for weighted training where when this signal is true, only cross-
   * intent level features are used for training and other candidate level features are masked (set
   * as missing).
   * @param maskCandidateLevelFeatures maskCandidateLevelFeatures or {@code null} for none
   */
  public AssistantPrefulfillmentRankerPrefulfillmentSignals setMaskCandidateLevelFeatures(java.lang.Boolean maskCandidateLevelFeatures) {
    this.maskCandidateLevelFeatures = maskCandidateLevelFeatures;
    return this;
  }

  /**
   * The maximum score assigned by the Horizontal Grounding Ranker (HGR) across all of the intent's
   * binding sets.
   * @return value or {@code null} for none
   */
  public java.lang.Double getMaxHgrScoreAcrossBindingSets() {
    return maxHgrScoreAcrossBindingSets;
  }

  /**
   * The maximum score assigned by the Horizontal Grounding Ranker (HGR) across all of the intent's
   * binding sets.
   * @param maxHgrScoreAcrossBindingSets maxHgrScoreAcrossBindingSets or {@code null} for none
   */
  public AssistantPrefulfillmentRankerPrefulfillmentSignals setMaxHgrScoreAcrossBindingSets(java.lang.Double maxHgrScoreAcrossBindingSets) {
    this.maxHgrScoreAcrossBindingSets = maxHgrScoreAcrossBindingSets;
    return this;
  }

  /**
   * Rank of the intent as reported by NSP.
   * @return value or {@code null} for none
   */
  public java.lang.Integer getNspRank() {
    return nspRank;
  }

  /**
   * Rank of the intent as reported by NSP.
   * @param nspRank nspRank or {@code null} for none
   */
  public AssistantPrefulfillmentRankerPrefulfillmentSignals setNspRank(java.lang.Integer nspRank) {
    this.nspRank = nspRank;
    return this;
  }

  /**
   * Number of alternative hypotheses from speech recognition(S3).
   * @return value or {@code null} for none
   */
  public java.lang.Float getNumAlternativeHypothesis() {
    return numAlternativeHypothesis;
  }

  /**
   * Number of alternative hypotheses from speech recognition(S3).
   * @param numAlternativeHypothesis numAlternativeHypothesis or {@code null} for none
   */
  public AssistantPrefulfillmentRankerPrefulfillmentSignals setNumAlternativeHypothesis(java.lang.Float numAlternativeHypothesis) {
    this.numAlternativeHypothesis = numAlternativeHypothesis;
    return this;
  }

  /**
   * Sum of the number of constraints used by the Grounding Box to ground each variable.
   * @return value or {@code null} for none
   */
  public java.lang.Double getNumConstraints() {
    return numConstraints;
  }

  /**
   * Sum of the number of constraints used by the Grounding Box to ground each variable.
   * @param numConstraints numConstraints or {@code null} for none
   */
  public AssistantPrefulfillmentRankerPrefulfillmentSignals setNumConstraints(java.lang.Double numConstraints) {
    this.numConstraints = numConstraints;
    return this;
  }

  /**
   * Sum of the number of constraints satisfied for each variable. Depending on the match score for
   * a constraint, this number can be fractional and is in the range [0, num_constraints]. Populated
   * by the Grounding Box.
   * @return value or {@code null} for none
   */
  public java.lang.Double getNumConstraintsSatisfied() {
    return numConstraintsSatisfied;
  }

  /**
   * Sum of the number of constraints satisfied for each variable. Depending on the match score for
   * a constraint, this number can be fractional and is in the range [0, num_constraints]. Populated
   * by the Grounding Box.
   * @param numConstraintsSatisfied numConstraintsSatisfied or {@code null} for none
   */
  public AssistantPrefulfillmentRankerPrefulfillmentSignals setNumConstraintsSatisfied(java.lang.Double numConstraintsSatisfied) {
    this.numConstraintsSatisfied = numConstraintsSatisfied;
    return this;
  }

  /**
   * Number of groundable arguments the intent has, populated by the Grounding Box.
   * @return value or {@code null} for none
   */
  public java.lang.Double getNumGroundableArgs() {
    return numGroundableArgs;
  }

  /**
   * Number of groundable arguments the intent has, populated by the Grounding Box.
   * @param numGroundableArgs numGroundableArgs or {@code null} for none
   */
  public AssistantPrefulfillmentRankerPrefulfillmentSignals setNumGroundableArgs(java.lang.Double numGroundableArgs) {
    this.numGroundableArgs = numGroundableArgs;
    return this;
  }

  /**
   * Number of grounded arguments the intent has, populated by the Grounding Box.
   * @return value or {@code null} for none
   */
  public java.lang.Double getNumGroundedArgs() {
    return numGroundedArgs;
  }

  /**
   * Number of grounded arguments the intent has, populated by the Grounding Box.
   * @param numGroundedArgs numGroundedArgs or {@code null} for none
   */
  public AssistantPrefulfillmentRankerPrefulfillmentSignals setNumGroundedArgs(java.lang.Double numGroundedArgs) {
    this.numGroundedArgs = numGroundedArgs;
    return this;
  }

  /**
   * Signals as proposed in go/improved-grounding-signals. Number of arguments, possibly nested,
   * that the Grounding Box tried to ground.
   * @return value or {@code null} for none
   */
  public java.lang.Double getNumVariables() {
    return numVariables;
  }

  /**
   * Signals as proposed in go/improved-grounding-signals. Number of arguments, possibly nested,
   * that the Grounding Box tried to ground.
   * @param numVariables numVariables or {@code null} for none
   */
  public AssistantPrefulfillmentRankerPrefulfillmentSignals setNumVariables(java.lang.Double numVariables) {
    this.numVariables = numVariables;
    return this;
  }

  /**
   * Number of arguments, possibly nested, that the Grounding Box was able to ground. This includes
   * ambiguously grounded arguments.
   * @return value or {@code null} for none
   */
  public java.lang.Double getNumVariablesGrounded() {
    return numVariablesGrounded;
  }

  /**
   * Number of arguments, possibly nested, that the Grounding Box was able to ground. This includes
   * ambiguously grounded arguments.
   * @param numVariablesGrounded numVariablesGrounded or {@code null} for none
   */
  public AssistantPrefulfillmentRankerPrefulfillmentSignals setNumVariablesGrounded(java.lang.Double numVariablesGrounded) {
    this.numVariablesGrounded = numVariablesGrounded;
    return this;
  }

  /**
   * A ID corresponding to which bucket a given parsing score belongs in.
   * @return value or {@code null} for none
   */
  public java.lang.Integer getParsingScoreMse8BucketId() {
    return parsingScoreMse8BucketId;
  }

  /**
   * A ID corresponding to which bucket a given parsing score belongs in.
   * @param parsingScoreMse8BucketId parsingScoreMse8BucketId or {@code null} for none
   */
  public AssistantPrefulfillmentRankerPrefulfillmentSignals setParsingScoreMse8BucketId(java.lang.Integer parsingScoreMse8BucketId) {
    this.parsingScoreMse8BucketId = parsingScoreMse8BucketId;
    return this;
  }

  /**
   * Query understanding phase the intent was produced in.
   * @return value or {@code null} for none
   */
  public java.lang.String getPhase() {
    return phase;
  }

  /**
   * Query understanding phase the intent was produced in.
   * @param phase phase or {@code null} for none
   */
  public AssistantPrefulfillmentRankerPrefulfillmentSignals setPhase(java.lang.String phase) {
    this.phase = phase;
    return this;
  }

  /**
   * Cosine similarity between predicted query-to-term model and assistant intent-type-based salient
   * terms. This is intended to be only used for ACE ranking and only populated for assistant
   * traffic.
   * @return value or {@code null} for none
   */
  public java.lang.Double getPq2tVsAssistantIbstCosine() {
    return pq2tVsAssistantIbstCosine;
  }

  /**
   * Cosine similarity between predicted query-to-term model and assistant intent-type-based salient
   * terms. This is intended to be only used for ACE ranking and only populated for assistant
   * traffic.
   * @param pq2tVsAssistantIbstCosine pq2tVsAssistantIbstCosine or {@code null} for none
   */
  public AssistantPrefulfillmentRankerPrefulfillmentSignals setPq2tVsAssistantIbstCosine(java.lang.Double pq2tVsAssistantIbstCosine) {
    this.pq2tVsAssistantIbstCosine = pq2tVsAssistantIbstCosine;
    return this;
  }

  /**
   * Cosine similarity between predicted query-to-term model and intent-type-based salient terms.
   * This is intended to be used as a backoff to pq2t_vs_qibst_cosine if it is missing.
   * @return value or {@code null} for none
   */
  public java.lang.Double getPq2tVsIbstCosine() {
    return pq2tVsIbstCosine;
  }

  /**
   * Cosine similarity between predicted query-to-term model and intent-type-based salient terms.
   * This is intended to be used as a backoff to pq2t_vs_qibst_cosine if it is missing.
   * @param pq2tVsIbstCosine pq2tVsIbstCosine or {@code null} for none
   */
  public AssistantPrefulfillmentRankerPrefulfillmentSignals setPq2tVsIbstCosine(java.lang.Double pq2tVsIbstCosine) {
    this.pq2tVsIbstCosine = pq2tVsIbstCosine;
    return this;
  }

  /**
   * Intent confidence predicted by the AssistantVerticalClassifier QRewrite servlet.
   * @return value or {@code null} for none
   */
  public java.lang.Float getPredictedIntentConfidence() {
    return predictedIntentConfidence;
  }

  /**
   * Intent confidence predicted by the AssistantVerticalClassifier QRewrite servlet.
   * @param predictedIntentConfidence predictedIntentConfidence or {@code null} for none
   */
  public AssistantPrefulfillmentRankerPrefulfillmentSignals setPredictedIntentConfidence(java.lang.Float predictedIntentConfidence) {
    this.predictedIntentConfidence = predictedIntentConfidence;
    return this;
  }

  /**
   * Used in HGR to modify the ranker based on input experimental flag and intent name.
   * @return value or {@code null} for none
   */
  public java.lang.String getRankerName() {
    return rankerName;
  }

  /**
   * Used in HGR to modify the ranker based on input experimental flag and intent name.
   * @param rankerName rankerName or {@code null} for none
   */
  public AssistantPrefulfillmentRankerPrefulfillmentSignals setRankerName(java.lang.String rankerName) {
    this.rankerName = rankerName;
    return this;
  }

  /**
   * The determination made by the SearchDispatchingConfig as to whether and how this interpretation
   * should be dispatched to Search.
   * @return value or {@code null} for none
   */
  public java.lang.String getSearchDispatch() {
    return searchDispatch;
  }

  /**
   * The determination made by the SearchDispatchingConfig as to whether and how this interpretation
   * should be dispatched to Search.
   * @param searchDispatch searchDispatch or {@code null} for none
   */
  public AssistantPrefulfillmentRankerPrefulfillmentSignals setSearchDispatch(java.lang.String searchDispatch) {
    this.searchDispatch = searchDispatch;
    return this;
  }

  /**
   * SmartHome intent metadata used for the SmartHome business-rules twiddler.
   * @return value or {@code null} for none
   */
  public AssistantPfrSmartHomeIntentMetadata getSmarthomeIntentMetadata() {
    return smarthomeIntentMetadata;
  }

  /**
   * SmartHome intent metadata used for the SmartHome business-rules twiddler.
   * @param smarthomeIntentMetadata smarthomeIntentMetadata or {@code null} for none
   */
  public AssistantPrefulfillmentRankerPrefulfillmentSignals setSmarthomeIntentMetadata(AssistantPfrSmartHomeIntentMetadata smarthomeIntentMetadata) {
    this.smarthomeIntentMetadata = smarthomeIntentMetadata;
    return this;
  }

  /**
   * @return value or {@code null} for none
   */
  public java.lang.String getSubIntentType() {
    return subIntentType;
  }

  /**
   * @param subIntentType subIntentType or {@code null} for none
   */
  public AssistantPrefulfillmentRankerPrefulfillmentSignals setSubIntentType(java.lang.String subIntentType) {
    this.subIntentType = subIntentType;
    return this;
  }

  /**
   * Average of per-word confidence for top speech recognition hypothesis. The value is from
   * RecognizerHypothesisLog:
   * http://google3/logs/proto/speech/service/recognizer_log.proto?l=848=281400256
   * @return value or {@code null} for none
   */
  public java.lang.Float getTopHypothesisConfidence() {
    return topHypothesisConfidence;
  }

  /**
   * Average of per-word confidence for top speech recognition hypothesis. The value is from
   * RecognizerHypothesisLog:
   * http://google3/logs/proto/speech/service/recognizer_log.proto?l=848=281400256
   * @param topHypothesisConfidence topHypothesisConfidence or {@code null} for none
   */
  public AssistantPrefulfillmentRankerPrefulfillmentSignals setTopHypothesisConfidence(java.lang.Float topHypothesisConfidence) {
    this.topHypothesisConfidence = topHypothesisConfidence;
    return this;
  }

  /**
   * Horizontal feature that stores information about confidence scores for each resolution within
   * the binding set.
   * @return value or {@code null} for none
   */
  public java.lang.Float getVerticalConfidenceScore() {
    return verticalConfidenceScore;
  }

  /**
   * Horizontal feature that stores information about confidence scores for each resolution within
   * the binding set.
   * @param verticalConfidenceScore verticalConfidenceScore or {@code null} for none
   */
  public AssistantPrefulfillmentRankerPrefulfillmentSignals setVerticalConfidenceScore(java.lang.Float verticalConfidenceScore) {
    this.verticalConfidenceScore = verticalConfidenceScore;
    return this;
  }

  @Override
  public AssistantPrefulfillmentRankerPrefulfillmentSignals set(String fieldName, Object value) {
    return (AssistantPrefulfillmentRankerPrefulfillmentSignals) super.set(fieldName, value);
  }

  @Override
  public AssistantPrefulfillmentRankerPrefulfillmentSignals clone() {
    return (AssistantPrefulfillmentRankerPrefulfillmentSignals) super.clone();
  }

}
