/*
 * 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.cloudsearch.v1.model;

/**
 * This is the proto for holding message level scoring information. This data is used for logging in
 * query-api server and for testing purposes.
 *
 * <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 Cloud Search 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 DynamiteMessagesScoringInfo extends com.google.api.client.json.GenericJson {

  /**
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key @com.google.api.client.json.JsonString
  private java.lang.Long commonContactCount;

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

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

  /**
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key @com.google.api.client.json.JsonString
  private java.lang.Long creatorGaiaId;

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

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

  /**
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key @com.google.api.client.json.JsonString
  private java.lang.Long dasContactCount;

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

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

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

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

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

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

  /**
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key @com.google.api.client.json.JsonString
  private java.lang.Long spaceId;

  /**
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key @com.google.api.client.json.JsonString
  private java.lang.Long spaceMembershipCount;

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

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

  /**
   * @return value or {@code null} for none
   */
  public java.lang.Long getCommonContactCount() {
    return commonContactCount;
  }

  /**
   * @param commonContactCount commonContactCount or {@code null} for none
   */
  public DynamiteMessagesScoringInfo setCommonContactCount(java.lang.Long commonContactCount) {
    this.commonContactCount = commonContactCount;
    return this;
  }

  /**
   * @return value or {@code null} for none
   */
  public java.lang.Double getCommonCountToContactListCountRatio() {
    return commonCountToContactListCountRatio;
  }

  /**
   * @param commonCountToContactListCountRatio commonCountToContactListCountRatio or {@code null} for none
   */
  public DynamiteMessagesScoringInfo setCommonCountToContactListCountRatio(java.lang.Double commonCountToContactListCountRatio) {
    this.commonCountToContactListCountRatio = commonCountToContactListCountRatio;
    return this;
  }

  /**
   * @return value or {@code null} for none
   */
  public java.lang.Double getCommonCountToMembershipCountRatio() {
    return commonCountToMembershipCountRatio;
  }

  /**
   * @param commonCountToMembershipCountRatio commonCountToMembershipCountRatio or {@code null} for none
   */
  public DynamiteMessagesScoringInfo setCommonCountToMembershipCountRatio(java.lang.Double commonCountToMembershipCountRatio) {
    this.commonCountToMembershipCountRatio = commonCountToMembershipCountRatio;
    return this;
  }

  /**
   * @return value or {@code null} for none
   */
  public java.lang.Long getCreatorGaiaId() {
    return creatorGaiaId;
  }

  /**
   * @param creatorGaiaId creatorGaiaId or {@code null} for none
   */
  public DynamiteMessagesScoringInfo setCreatorGaiaId(java.lang.Long creatorGaiaId) {
    this.creatorGaiaId = creatorGaiaId;
    return this;
  }

  /**
   * @return value or {@code null} for none
   */
  public java.lang.Boolean getCreatorInSearcherContactList() {
    return creatorInSearcherContactList;
  }

  /**
   * @param creatorInSearcherContactList creatorInSearcherContactList or {@code null} for none
   */
  public DynamiteMessagesScoringInfo setCreatorInSearcherContactList(java.lang.Boolean creatorInSearcherContactList) {
    this.creatorInSearcherContactList = creatorInSearcherContactList;
    return this;
  }

  /**
   * @return value or {@code null} for none
   */
  public java.lang.Double getCrowdingMultiplier() {
    return crowdingMultiplier;
  }

  /**
   * @param crowdingMultiplier crowdingMultiplier or {@code null} for none
   */
  public DynamiteMessagesScoringInfo setCrowdingMultiplier(java.lang.Double crowdingMultiplier) {
    this.crowdingMultiplier = crowdingMultiplier;
    return this;
  }

  /**
   * @return value or {@code null} for none
   */
  public java.lang.Long getDasContactCount() {
    return dasContactCount;
  }

  /**
   * @param dasContactCount dasContactCount or {@code null} for none
   */
  public DynamiteMessagesScoringInfo setDasContactCount(java.lang.Long dasContactCount) {
    this.dasContactCount = dasContactCount;
    return this;
  }

  /**
   * @return value or {@code null} for none
   */
  public java.lang.Double getFinalScore() {
    return finalScore;
  }

  /**
   * @param finalScore finalScore or {@code null} for none
   */
  public DynamiteMessagesScoringInfo setFinalScore(java.lang.Double finalScore) {
    this.finalScore = finalScore;
    return this;
  }

  /**
   * @return value or {@code null} for none
   */
  public java.lang.Double getFreshnessScore() {
    return freshnessScore;
  }

  /**
   * @param freshnessScore freshnessScore or {@code null} for none
   */
  public DynamiteMessagesScoringInfo setFreshnessScore(java.lang.Double freshnessScore) {
    this.freshnessScore = freshnessScore;
    return this;
  }

  /**
   * @return value or {@code null} for none
   */
  public java.lang.Double getJoinedSpaceAffinityScore() {
    return joinedSpaceAffinityScore;
  }

  /**
   * @param joinedSpaceAffinityScore joinedSpaceAffinityScore or {@code null} for none
   */
  public DynamiteMessagesScoringInfo setJoinedSpaceAffinityScore(java.lang.Double joinedSpaceAffinityScore) {
    this.joinedSpaceAffinityScore = joinedSpaceAffinityScore;
    return this;
  }

  /**
   * @return value or {@code null} for none
   */
  public java.lang.Double getLastReadTimestampAgeInDays() {
    return lastReadTimestampAgeInDays;
  }

  /**
   * @param lastReadTimestampAgeInDays lastReadTimestampAgeInDays or {@code null} for none
   */
  public DynamiteMessagesScoringInfo setLastReadTimestampAgeInDays(java.lang.Double lastReadTimestampAgeInDays) {
    this.lastReadTimestampAgeInDays = lastReadTimestampAgeInDays;
    return this;
  }

  /**
   * @return value or {@code null} for none
   */
  public java.lang.Double getMessageAgeInDays() {
    return messageAgeInDays;
  }

  /**
   * @param messageAgeInDays messageAgeInDays or {@code null} for none
   */
  public DynamiteMessagesScoringInfo setMessageAgeInDays(java.lang.Double messageAgeInDays) {
    this.messageAgeInDays = messageAgeInDays;
    return this;
  }

  /**
   * @return value or {@code null} for none
   */
  public java.lang.Double getMessageSenderAffinityScore() {
    return messageSenderAffinityScore;
  }

  /**
   * @param messageSenderAffinityScore messageSenderAffinityScore or {@code null} for none
   */
  public DynamiteMessagesScoringInfo setMessageSenderAffinityScore(java.lang.Double messageSenderAffinityScore) {
    this.messageSenderAffinityScore = messageSenderAffinityScore;
    return this;
  }

  /**
   * @return value or {@code null} for none
   */
  public java.lang.Long getSpaceId() {
    return spaceId;
  }

  /**
   * @param spaceId spaceId or {@code null} for none
   */
  public DynamiteMessagesScoringInfo setSpaceId(java.lang.Long spaceId) {
    this.spaceId = spaceId;
    return this;
  }

  /**
   * @return value or {@code null} for none
   */
  public java.lang.Long getSpaceMembershipCount() {
    return spaceMembershipCount;
  }

  /**
   * @param spaceMembershipCount spaceMembershipCount or {@code null} for none
   */
  public DynamiteMessagesScoringInfo setSpaceMembershipCount(java.lang.Long spaceMembershipCount) {
    this.spaceMembershipCount = spaceMembershipCount;
    return this;
  }

  /**
   * @return value or {@code null} for none
   */
  public java.lang.Double getTopicalityScore() {
    return topicalityScore;
  }

  /**
   * @param topicalityScore topicalityScore or {@code null} for none
   */
  public DynamiteMessagesScoringInfo setTopicalityScore(java.lang.Double topicalityScore) {
    this.topicalityScore = topicalityScore;
    return this;
  }

  /**
   * @return value or {@code null} for none
   */
  public java.lang.Double getUnjoinedSpaceAffinityScore() {
    return unjoinedSpaceAffinityScore;
  }

  /**
   * @param unjoinedSpaceAffinityScore unjoinedSpaceAffinityScore or {@code null} for none
   */
  public DynamiteMessagesScoringInfo setUnjoinedSpaceAffinityScore(java.lang.Double unjoinedSpaceAffinityScore) {
    this.unjoinedSpaceAffinityScore = unjoinedSpaceAffinityScore;
    return this;
  }

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

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

}
