/*
 * 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;

/**
 * Merged-person combines multiple sources of data like contacts and profiles. See go/people-api and
 * go/understanding-merged-person NOTE: Why are all the fields repeated? See go/people-api-
 * concepts#repeated
 *
 * <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 AppsPeopleOzExternalMergedpeopleapiPerson extends com.google.api.client.json.GenericJson {

  /**
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.util.List<AppsPeopleOzExternalMergedpeopleapiAbout> about;

  static {
    // hack to force ProGuard to consider AppsPeopleOzExternalMergedpeopleapiAbout used, since otherwise it would be stripped out
    // see https://github.com/google/google-api-java-client/issues/543
    com.google.api.client.util.Data.nullOf(AppsPeopleOzExternalMergedpeopleapiAbout.class);
  }

  /**
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.util.List<AppsPeopleOzExternalMergedpeopleapiAddress> address;

  static {
    // hack to force ProGuard to consider AppsPeopleOzExternalMergedpeopleapiAddress used, since otherwise it would be stripped out
    // see https://github.com/google/google-api-java-client/issues/543
    com.google.api.client.util.Data.nullOf(AppsPeopleOzExternalMergedpeopleapiAddress.class);
  }

  /**
   * Deprecated. If age is needed use `person.age_range_repeated` instead. Please see go/people-api-
   * howto:age on how to correctly get age data.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.String ageRange;

  /**
   * Data on the person's age range, adult status, and age of consent. NOTE: Please read go/people-
   * api-howto:age on how to correctly get age data.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.util.List<AppsPeopleOzExternalMergedpeopleapiAgeRangeType> ageRangeRepeated;

  static {
    // hack to force ProGuard to consider AppsPeopleOzExternalMergedpeopleapiAgeRangeType used, since otherwise it would be stripped out
    // see https://github.com/google/google-api-java-client/issues/543
    com.google.api.client.util.Data.nullOf(AppsPeopleOzExternalMergedpeopleapiAgeRangeType.class);
  }

  /**
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.util.List<AppsPeopleOzExternalMergedpeopleapiBirthday> birthday;

  static {
    // hack to force ProGuard to consider AppsPeopleOzExternalMergedpeopleapiBirthday used, since otherwise it would be stripped out
    // see https://github.com/google/google-api-java-client/issues/543
    com.google.api.client.util.Data.nullOf(AppsPeopleOzExternalMergedpeopleapiBirthday.class);
  }

  /**
   * Used only by contacts, no data will be returned for profiles.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.util.List<AppsPeopleOzExternalMergedpeopleapiBraggingRights> braggingRights;

  static {
    // hack to force ProGuard to consider AppsPeopleOzExternalMergedpeopleapiBraggingRights used, since otherwise it would be stripped out
    // see https://github.com/google/google-api-java-client/issues/543
    com.google.api.client.util.Data.nullOf(AppsPeopleOzExternalMergedpeopleapiBraggingRights.class);
  }

  /**
   * b/145671020: Deprecated for Profiles, but not for Contacts.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.util.List<AppsPeopleOzExternalMergedpeopleapiCalendar> calendar;

  static {
    // hack to force ProGuard to consider AppsPeopleOzExternalMergedpeopleapiCalendar used, since otherwise it would be stripped out
    // see https://github.com/google/google-api-java-client/issues/543
    com.google.api.client.util.Data.nullOf(AppsPeopleOzExternalMergedpeopleapiCalendar.class);
  }

  /**
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.util.List<AppsPeopleOzExternalMergedpeopleapiCertifiedBornBefore> certifiedBornBefore;

  static {
    // hack to force ProGuard to consider AppsPeopleOzExternalMergedpeopleapiCertifiedBornBefore used, since otherwise it would be stripped out
    // see https://github.com/google/google-api-java-client/issues/543
    com.google.api.client.util.Data.nullOf(AppsPeopleOzExternalMergedpeopleapiCertifiedBornBefore.class);
  }

  /**
   * Circles that this person is a member of.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.util.List<AppsPeopleOzExternalMergedpeopleapiCircleMembership> circleMembership;

  static {
    // hack to force ProGuard to consider AppsPeopleOzExternalMergedpeopleapiCircleMembership used, since otherwise it would be stripped out
    // see https://github.com/google/google-api-java-client/issues/543
    com.google.api.client.util.Data.nullOf(AppsPeopleOzExternalMergedpeopleapiCircleMembership.class);
  }

  /**
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.util.List<AppsPeopleOzExternalMergedpeopleapiClientData> clientData;

  static {
    // hack to force ProGuard to consider AppsPeopleOzExternalMergedpeopleapiClientData used, since otherwise it would be stripped out
    // see https://github.com/google/google-api-java-client/issues/543
    com.google.api.client.util.Data.nullOf(AppsPeopleOzExternalMergedpeopleapiClientData.class);
  }

  /**
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.util.List<AppsPeopleOzExternalMergedpeopleapiCommunicationEmail> communicationEmail;

  static {
    // hack to force ProGuard to consider AppsPeopleOzExternalMergedpeopleapiCommunicationEmail used, since otherwise it would be stripped out
    // see https://github.com/google/google-api-java-client/issues/543
    com.google.api.client.util.Data.nullOf(AppsPeopleOzExternalMergedpeopleapiCommunicationEmail.class);
  }

  /**
   * Reminder to connect with a Contact (part of go/people-prompts). Also contains contact-level
   * prompts settings. Each Contact can have a single `connection_reminder` (but can have multiple
   * Prompts inside of it). Field is repeated per PeopleAPI data model go/people-api-
   * concepts#repeated. Only supported for CONTACT container.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.util.List<AppsPeopleOzExternalMergedpeopleapiConnectionReminder> connectionReminder;

  static {
    // hack to force ProGuard to consider AppsPeopleOzExternalMergedpeopleapiConnectionReminder used, since otherwise it would be stripped out
    // see https://github.com/google/google-api-java-client/issues/543
    com.google.api.client.util.Data.nullOf(AppsPeopleOzExternalMergedpeopleapiConnectionReminder.class);
  }

  /**
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.util.List<AppsPeopleOzExternalMergedpeopleapiContactCreateContextInfo> contactCreateContextInfo;

  static {
    // hack to force ProGuard to consider AppsPeopleOzExternalMergedpeopleapiContactCreateContextInfo used, since otherwise it would be stripped out
    // see https://github.com/google/google-api-java-client/issues/543
    com.google.api.client.util.Data.nullOf(AppsPeopleOzExternalMergedpeopleapiContactCreateContextInfo.class);
  }

  /**
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.util.List<AppsPeopleOzExternalMergedpeopleapiContactEditContextInfo> contactEditContextInfo;

  static {
    // hack to force ProGuard to consider AppsPeopleOzExternalMergedpeopleapiContactEditContextInfo used, since otherwise it would be stripped out
    // see https://github.com/google/google-api-java-client/issues/543
    com.google.api.client.util.Data.nullOf(AppsPeopleOzExternalMergedpeopleapiContactEditContextInfo.class);
  }

  /**
   * Contact groups that this person is a member of.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.util.List<AppsPeopleOzExternalMergedpeopleapiContactGroupMembership> contactGroupMembership;

  static {
    // hack to force ProGuard to consider AppsPeopleOzExternalMergedpeopleapiContactGroupMembership used, since otherwise it would be stripped out
    // see https://github.com/google/google-api-java-client/issues/543
    com.google.api.client.util.Data.nullOf(AppsPeopleOzExternalMergedpeopleapiContactGroupMembership.class);
  }

  /**
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.util.List<AppsPeopleOzExternalMergedpeopleapiContactPromptSettingsInfo> contactPromptSettingsInfo;

  static {
    // hack to force ProGuard to consider AppsPeopleOzExternalMergedpeopleapiContactPromptSettingsInfo used, since otherwise it would be stripped out
    // see https://github.com/google/google-api-java-client/issues/543
    com.google.api.client.util.Data.nullOf(AppsPeopleOzExternalMergedpeopleapiContactPromptSettingsInfo.class);
  }

  /**
   * Contact state and related metadata. See go/fbs-contacts-trash. If this field was requested but
   * is not set on the Person then the contact is in the DEFAULT contact state. This field is read-
   * only, and should not be set on a mutate (e.g. UpdatePerson) call. Clients must call the
   * explicit APIs (e.g. UntrashPerson) to change contact state.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.util.List<AppsPeopleOzExternalMergedpeopleapiContactStateInfo> contactStateInfo;

  static {
    // hack to force ProGuard to consider AppsPeopleOzExternalMergedpeopleapiContactStateInfo used, since otherwise it would be stripped out
    // see https://github.com/google/google-api-java-client/issues/543
    com.google.api.client.util.Data.nullOf(AppsPeopleOzExternalMergedpeopleapiContactStateInfo.class);
  }

  /**
   * DEPRECATED. Now always returns a default cover photo. See go/sunset-cover-photo.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.util.List<AppsPeopleOzExternalMergedpeopleapiCoverPhoto> coverPhoto;

  static {
    // hack to force ProGuard to consider AppsPeopleOzExternalMergedpeopleapiCoverPhoto used, since otherwise it would be stripped out
    // see https://github.com/google/google-api-java-client/issues/543
    com.google.api.client.util.Data.nullOf(AppsPeopleOzExternalMergedpeopleapiCoverPhoto.class);
  }

  /**
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.util.List<AppsPeopleOzExternalMergedpeopleapiCustomSchemaField> customSchemaField;

  static {
    // hack to force ProGuard to consider AppsPeopleOzExternalMergedpeopleapiCustomSchemaField used, since otherwise it would be stripped out
    // see https://github.com/google/google-api-java-client/issues/543
    com.google.api.client.util.Data.nullOf(AppsPeopleOzExternalMergedpeopleapiCustomSchemaField.class);
  }

  /**
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.util.List<AppsPeopleOzExternalMergedpeopleapiEmail> email;

  static {
    // hack to force ProGuard to consider AppsPeopleOzExternalMergedpeopleapiEmail used, since otherwise it would be stripped out
    // see https://github.com/google/google-api-java-client/issues/543
    com.google.api.client.util.Data.nullOf(AppsPeopleOzExternalMergedpeopleapiEmail.class);
  }

  /**
   * Emergency information. See go/emergency-trusted-contacts-papi.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.util.List<AppsPeopleOzExternalMergedpeopleapiEmergencyInfo> emergencyInfo;

  static {
    // hack to force ProGuard to consider AppsPeopleOzExternalMergedpeopleapiEmergencyInfo used, since otherwise it would be stripped out
    // see https://github.com/google/google-api-java-client/issues/543
    com.google.api.client.util.Data.nullOf(AppsPeopleOzExternalMergedpeopleapiEmergencyInfo.class);
  }

  /**
   * Event is currently in use by contacts.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.util.List<AppsPeopleOzExternalMergedpeopleapiEvent> event;

  static {
    // hack to force ProGuard to consider AppsPeopleOzExternalMergedpeopleapiEvent used, since otherwise it would be stripped out
    // see https://github.com/google/google-api-java-client/issues/543
    com.google.api.client.util.Data.nullOf(AppsPeopleOzExternalMergedpeopleapiEvent.class);
  }

  /**
   * Data added by extensions that are not specific to a particular field.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private AppsPeopleOzExternalMergedpeopleapiPersonExtendedData extendedData;

  /**
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.util.List<AppsPeopleOzExternalMergedpeopleapiExternalId> externalId;

  static {
    // hack to force ProGuard to consider AppsPeopleOzExternalMergedpeopleapiExternalId used, since otherwise it would be stripped out
    // see https://github.com/google/google-api-java-client/issues/543
    com.google.api.client.util.Data.nullOf(AppsPeopleOzExternalMergedpeopleapiExternalId.class);
  }

  /**
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.util.List<AppsPeopleOzExternalMergedpeopleapiFileAs> fileAs;

  static {
    // hack to force ProGuard to consider AppsPeopleOzExternalMergedpeopleapiFileAs used, since otherwise it would be stripped out
    // see https://github.com/google/google-api-java-client/issues/543
    com.google.api.client.util.Data.nullOf(AppsPeopleOzExternalMergedpeopleapiFileAs.class);
  }

  /**
   * A fingerprint that can be used to reliably determine if a resource has changed. Externally it
   * is used as part of the etag.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.String fingerprint;

  /**
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.util.List<AppsPeopleOzExternalMergedpeopleapiGender> gender;

  static {
    // hack to force ProGuard to consider AppsPeopleOzExternalMergedpeopleapiGender used, since otherwise it would be stripped out
    // see https://github.com/google/google-api-java-client/issues/543
    com.google.api.client.util.Data.nullOf(AppsPeopleOzExternalMergedpeopleapiGender.class);
  }

  /**
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.util.List<AppsPeopleOzExternalMergedpeopleapiIm> im;

  static {
    // hack to force ProGuard to consider AppsPeopleOzExternalMergedpeopleapiIm used, since otherwise it would be stripped out
    // see https://github.com/google/google-api-java-client/issues/543
    com.google.api.client.util.Data.nullOf(AppsPeopleOzExternalMergedpeopleapiIm.class);
  }

  /**
   * Ways to send in-app notifications to this person. See go/reachability. This field is read-only
   * and ignored for mutates.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.util.List<AppsPeopleOzExternalMergedpeopleapiInAppNotificationTarget> inAppNotificationTarget;

  static {
    // hack to force ProGuard to consider AppsPeopleOzExternalMergedpeopleapiInAppNotificationTarget used, since otherwise it would be stripped out
    // see https://github.com/google/google-api-java-client/issues/543
    com.google.api.client.util.Data.nullOf(AppsPeopleOzExternalMergedpeopleapiInAppNotificationTarget.class);
  }

  /**
   * Used only by profile service, deprecated for PeopleAPI and Sharpen. If you aren't sure, contact
   * people-api-users@ and profile-service-eng@.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.util.List<AppsPeopleOzExternalMergedpeopleapiInAppReachability> inAppReachability;

  static {
    // hack to force ProGuard to consider AppsPeopleOzExternalMergedpeopleapiInAppReachability used, since otherwise it would be stripped out
    // see https://github.com/google/google-api-java-client/issues/543
    com.google.api.client.util.Data.nullOf(AppsPeopleOzExternalMergedpeopleapiInAppReachability.class);
  }

  /**
   * DEPRECATED. This field isn't populated in people.list.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.util.List<AppsPeopleOzExternalMergedpeopleapiInteractionSettings> interactionSettings;

  static {
    // hack to force ProGuard to consider AppsPeopleOzExternalMergedpeopleapiInteractionSettings used, since otherwise it would be stripped out
    // see https://github.com/google/google-api-java-client/issues/543
    com.google.api.client.util.Data.nullOf(AppsPeopleOzExternalMergedpeopleapiInteractionSettings.class);
  }

  /**
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.util.List<AppsPeopleOzExternalMergedpeopleapiInterest> interest;

  static {
    // hack to force ProGuard to consider AppsPeopleOzExternalMergedpeopleapiInterest used, since otherwise it would be stripped out
    // see https://github.com/google/google-api-java-client/issues/543
    com.google.api.client.util.Data.nullOf(AppsPeopleOzExternalMergedpeopleapiInterest.class);
  }

  /**
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.util.List<AppsPeopleOzExternalMergedpeopleapiLanguage> language;

  static {
    // hack to force ProGuard to consider AppsPeopleOzExternalMergedpeopleapiLanguage used, since otherwise it would be stripped out
    // see https://github.com/google/google-api-java-client/issues/543
    com.google.api.client.util.Data.nullOf(AppsPeopleOzExternalMergedpeopleapiLanguage.class);
  }

  /**
   * DEPRECATED. This field was only for backwards compatibility with legacy GData callers, and
   * should not be used by new clients. Legacy fields used for mobile clients.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private AppsPeopleOzExternalMergedpeopleapiLegacyFields legacyFields;

  /**
   * Settings for the limited profile. See go/limited-profiles-api.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.util.List<AppsPeopleOzExternalMergedpeopleapiLimitedProfileSettingsField> limitedProfileSettings;

  static {
    // hack to force ProGuard to consider AppsPeopleOzExternalMergedpeopleapiLimitedProfileSettingsField used, since otherwise it would be stripped out
    // see https://github.com/google/google-api-java-client/issues/543
    com.google.api.client.util.Data.nullOf(AppsPeopleOzExternalMergedpeopleapiLimitedProfileSettingsField.class);
  }

  /**
   * Other person resources linked indirectly by an edge. The full person or just the IDs may be
   * populated depending on request parameters. We consider linked people distinct people, but they
   * share information. Example: A contact with two outgoing edges. The two edges are considered
   * separate, but linked people.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.util.List<AppsPeopleOzExternalMergedpeopleapiPerson> linkedPerson;

  /**
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.util.List<AppsPeopleOzExternalMergedpeopleapiLocation> location;

  static {
    // hack to force ProGuard to consider AppsPeopleOzExternalMergedpeopleapiLocation used, since otherwise it would be stripped out
    // see https://github.com/google/google-api-java-client/issues/543
    com.google.api.client.util.Data.nullOf(AppsPeopleOzExternalMergedpeopleapiLocation.class);
  }

  /**
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.util.List<AppsPeopleOzExternalMergedpeopleapiManagementUpchain> managementUpchain;

  static {
    // hack to force ProGuard to consider AppsPeopleOzExternalMergedpeopleapiManagementUpchain used, since otherwise it would be stripped out
    // see https://github.com/google/google-api-java-client/issues/543
    com.google.api.client.util.Data.nullOf(AppsPeopleOzExternalMergedpeopleapiManagementUpchain.class);
  }

  /**
   * MapsProfile, see go/product-profiles-backend-api
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.util.List<AppsPeopleOzExternalMergedpeopleapiMapsProfile> mapsProfile;

  static {
    // hack to force ProGuard to consider AppsPeopleOzExternalMergedpeopleapiMapsProfile used, since otherwise it would be stripped out
    // see https://github.com/google/google-api-java-client/issues/543
    com.google.api.client.util.Data.nullOf(AppsPeopleOzExternalMergedpeopleapiMapsProfile.class);
  }

  /**
   * DEPRECATED. Please use `circle_membership` or `contact_group_membership` instead. Contact-
   * groups and circles that this person is a member of.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.util.List<AppsPeopleOzExternalMergedpeopleapiMembership> membership;

  static {
    // hack to force ProGuard to consider AppsPeopleOzExternalMergedpeopleapiMembership used, since otherwise it would be stripped out
    // see https://github.com/google/google-api-java-client/issues/543
    com.google.api.client.util.Data.nullOf(AppsPeopleOzExternalMergedpeopleapiMembership.class);
  }

  /**
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private AppsPeopleOzExternalMergedpeopleapiPersonMetadata metadata;

  /**
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.util.List<AppsPeopleOzExternalMergedpeopleapiMission> mission;

  static {
    // hack to force ProGuard to consider AppsPeopleOzExternalMergedpeopleapiMission used, since otherwise it would be stripped out
    // see https://github.com/google/google-api-java-client/issues/543
    com.google.api.client.util.Data.nullOf(AppsPeopleOzExternalMergedpeopleapiMission.class);
  }

  /**
   * See go/people-api-howto:names for details about names in PeopleAPI.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.util.List<AppsPeopleOzExternalMergedpeopleapiName> name;

  static {
    // hack to force ProGuard to consider AppsPeopleOzExternalMergedpeopleapiName used, since otherwise it would be stripped out
    // see https://github.com/google/google-api-java-client/issues/543
    com.google.api.client.util.Data.nullOf(AppsPeopleOzExternalMergedpeopleapiName.class);
  }

  /**
   * Metadata info for a user's name pronunciation audio. See go/name-pronunication-backend.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.util.List<AppsPeopleOzExternalMergedpeopleapiNamePronunciationAudioMetadataInfo> namePronunciationAudioMetadataInfo;

  static {
    // hack to force ProGuard to consider AppsPeopleOzExternalMergedpeopleapiNamePronunciationAudioMetadataInfo used, since otherwise it would be stripped out
    // see https://github.com/google/google-api-java-client/issues/543
    com.google.api.client.util.Data.nullOf(AppsPeopleOzExternalMergedpeopleapiNamePronunciationAudioMetadataInfo.class);
  }

  /**
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.util.List<AppsPeopleOzExternalMergedpeopleapiNickname> nickname;

  static {
    // hack to force ProGuard to consider AppsPeopleOzExternalMergedpeopleapiNickname used, since otherwise it would be stripped out
    // see https://github.com/google/google-api-java-client/issues/543
    com.google.api.client.util.Data.nullOf(AppsPeopleOzExternalMergedpeopleapiNickname.class);
  }

  /**
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.util.List<AppsPeopleOzExternalMergedpeopleapiOccupation> occupation;

  static {
    // hack to force ProGuard to consider AppsPeopleOzExternalMergedpeopleapiOccupation used, since otherwise it would be stripped out
    // see https://github.com/google/google-api-java-client/issues/543
    com.google.api.client.util.Data.nullOf(AppsPeopleOzExternalMergedpeopleapiOccupation.class);
  }

  /**
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.util.List<AppsPeopleOzExternalMergedpeopleapiOrganization> organization;

  static {
    // hack to force ProGuard to consider AppsPeopleOzExternalMergedpeopleapiOrganization used, since otherwise it would be stripped out
    // see https://github.com/google/google-api-java-client/issues/543
    com.google.api.client.util.Data.nullOf(AppsPeopleOzExternalMergedpeopleapiOrganization.class);
  }

  /**
   * Legacy arbitrary key value fields
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.util.List<AppsPeopleOzExternalMergedpeopleapiOtherKeyword> otherKeyword;

  static {
    // hack to force ProGuard to consider AppsPeopleOzExternalMergedpeopleapiOtherKeyword used, since otherwise it would be stripped out
    // see https://github.com/google/google-api-java-client/issues/543
    com.google.api.client.util.Data.nullOf(AppsPeopleOzExternalMergedpeopleapiOtherKeyword.class);
  }

  /**
   * DEPRECATED. This feature was stubbed, but never implemented. This field will not be populated
   * with any results.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.util.List<AppsPeopleOzExternalMergedpeopleapiPerson> peopleInCommon;

  /**
   * In order to request this field, the client must set desired PersonAttributeKey in the dedicated
   * RequestMask field `person_attribute`. Unlike other person fields, this field cannot be
   * requested in the `include_field` field mask.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.util.List<AppsPeopleOzExternalMergedpeopleapiPersonAttribute> personAttribute;

  /**
   * The ID of the person. This is determined by the backend, is unstable, and may not be the same
   * as a user_id. Internally referred as 'personKey' to distinguish from the common PersonId pojo.
   * See go/people-api-concepts#person-id
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.String personId;

  /**
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.util.List<AppsPeopleOzExternalMergedpeopleapiPhone> phone;

  /**
   * See go/people-api-concepts/photos for usage details
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.util.List<AppsPeopleOzExternalMergedpeopleapiPhoto> photo;

  /**
   * Data specific to places. Data which also applies to contacts and profiles such as name, phone,
   * photo, etc. are returned in the corresponding Person fields.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.util.List<AppsPeopleOzExternalMergedpeopleapiPlaceDetails> placeDetails;

  /**
   * DEPRECATED. Info about plus pages in the person.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.util.List<AppsPeopleOzExternalMergedpeopleapiPlusPageInfo> plusPageInfo;

  /**
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.util.List<AppsPeopleOzExternalMergedpeopleapiPosixAccount> posixAccount;

  /**
   * DEPRECATED. (go/people-api-concepts#repeated): Use person.profile_url_repeated instead. Access
   * to this field is restricted to a set of legacy clients. This is a Google+-only field. See
   * go/fbs-g+-deprecation. NOTE: `Person.profile_url` is only populated for profile-centric person.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.String profileUrl;

  /**
   * This is a Google+-only field. See go/fbs-g+-deprecation.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.util.List<AppsPeopleOzExternalMergedpeopleapiProfileUrl> profileUrlRepeated;

  /**
   * Pronouns are not supported for consumer profiles. See go/pronouns-in-people-system-prd for more
   * details.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.util.List<AppsPeopleOzExternalMergedpeopleapiPronoun> pronoun;

  /**
   * Information about the profiles that are a part of this Person. This is only applicable to
   * PROFILE and DOMAIN_PROFILE containers.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.util.List<AppsPeopleOzExternalMergedpeopleapiReadOnlyProfileInfo> readOnlyProfileInfo;

  /**
   * See go/relation-vs-relationship for relation vs relationship explanation.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.util.List<AppsPeopleOzExternalMergedpeopleapiRelation> relation;

  /**
   * DEPRECATED. No data is returned for this field anymore.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.util.List<AppsPeopleOzExternalMergedpeopleapiRelationshipInterest> relationshipInterest;

  /**
   * DEPRECATED. No data is returned for this field anymore.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.util.List<AppsPeopleOzExternalMergedpeopleapiRelationshipStatus> relationshipStatus;

  /**
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.util.List<AppsPeopleOzExternalMergedpeopleapiRightOfPublicityState> rightOfPublicityState;

  /**
   * Data specific to rosters (such as Google Groups and Chat Rooms). Data which also applies to
   * contacts and profiles such as name, email, and photo, etc are returned in the corresponding
   * Person fields.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.util.List<AppsPeopleOzExternalMergedpeopleapiRosterDetails> rosterDetails;

  /**
   * Profile for Janata and Search. go/janata-profile-in-sgbe
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.util.List<AppsPeopleOzExternalMergedpeopleapiSearchProfile> searchProfile;

  /**
   * SipAddress is currently in use by contacts.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.util.List<AppsPeopleOzExternalMergedpeopleapiSipAddress> sipAddress;

  /**
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.util.List<AppsPeopleOzExternalMergedpeopleapiSkills> skills;

  /**
   * NOTE: this is used by go/starlight, but not actually used or returned in PeopleAPI. See
   * b/27281119 for context. Please reach out to people-api-eng@ if you have questions.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.util.List<AppsPeopleOzExternalMergedpeopleapiSocialConnection> socialConnection;

  /**
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private AppsPeopleOzExternalMergedpeopleapiSortKeys sortKeys;

  /**
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.util.List<AppsPeopleOzExternalMergedpeopleapiSshPublicKey> sshPublicKey;

  /**
   * Only supported for PLACE container results, no data will be returned for profiles.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.util.List<AppsPeopleOzExternalMergedpeopleapiTagline> tagline;

  /**
   * DEPRECATED. *UNSUPPORTED*. This field is never populated.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private AppsPeopleOzExternalMergedpeopleapiTeamsExtendedData teamsExtendedData;

  /**
   * UserDefined is currently in use by contacts.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.util.List<AppsPeopleOzExternalMergedpeopleapiUserDefined> userDefined;

  /**
   * Add annotation_id and metadata (product_source) for visible to guests contacts go/visible-to-
   * guests.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.util.List<AppsPeopleOzExternalMergedpeopleapiVisibleToGuests> visibleToGuests;

  /**
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.util.List<AppsPeopleOzExternalMergedpeopleapiWebsite> website;

  /**
   * @return value or {@code null} for none
   */
  public java.util.List<AppsPeopleOzExternalMergedpeopleapiAbout> getAbout() {
    return about;
  }

  /**
   * @param about about or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setAbout(java.util.List<AppsPeopleOzExternalMergedpeopleapiAbout> about) {
    this.about = about;
    return this;
  }

  /**
   * @return value or {@code null} for none
   */
  public java.util.List<AppsPeopleOzExternalMergedpeopleapiAddress> getAddress() {
    return address;
  }

  /**
   * @param address address or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setAddress(java.util.List<AppsPeopleOzExternalMergedpeopleapiAddress> address) {
    this.address = address;
    return this;
  }

  /**
   * Deprecated. If age is needed use `person.age_range_repeated` instead. Please see go/people-api-
   * howto:age on how to correctly get age data.
   * @return value or {@code null} for none
   */
  public java.lang.String getAgeRange() {
    return ageRange;
  }

  /**
   * Deprecated. If age is needed use `person.age_range_repeated` instead. Please see go/people-api-
   * howto:age on how to correctly get age data.
   * @param ageRange ageRange or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setAgeRange(java.lang.String ageRange) {
    this.ageRange = ageRange;
    return this;
  }

  /**
   * Data on the person's age range, adult status, and age of consent. NOTE: Please read go/people-
   * api-howto:age on how to correctly get age data.
   * @return value or {@code null} for none
   */
  public java.util.List<AppsPeopleOzExternalMergedpeopleapiAgeRangeType> getAgeRangeRepeated() {
    return ageRangeRepeated;
  }

  /**
   * Data on the person's age range, adult status, and age of consent. NOTE: Please read go/people-
   * api-howto:age on how to correctly get age data.
   * @param ageRangeRepeated ageRangeRepeated or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setAgeRangeRepeated(java.util.List<AppsPeopleOzExternalMergedpeopleapiAgeRangeType> ageRangeRepeated) {
    this.ageRangeRepeated = ageRangeRepeated;
    return this;
  }

  /**
   * @return value or {@code null} for none
   */
  public java.util.List<AppsPeopleOzExternalMergedpeopleapiBirthday> getBirthday() {
    return birthday;
  }

  /**
   * @param birthday birthday or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setBirthday(java.util.List<AppsPeopleOzExternalMergedpeopleapiBirthday> birthday) {
    this.birthday = birthday;
    return this;
  }

  /**
   * Used only by contacts, no data will be returned for profiles.
   * @return value or {@code null} for none
   */
  public java.util.List<AppsPeopleOzExternalMergedpeopleapiBraggingRights> getBraggingRights() {
    return braggingRights;
  }

  /**
   * Used only by contacts, no data will be returned for profiles.
   * @param braggingRights braggingRights or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setBraggingRights(java.util.List<AppsPeopleOzExternalMergedpeopleapiBraggingRights> braggingRights) {
    this.braggingRights = braggingRights;
    return this;
  }

  /**
   * b/145671020: Deprecated for Profiles, but not for Contacts.
   * @return value or {@code null} for none
   */
  public java.util.List<AppsPeopleOzExternalMergedpeopleapiCalendar> getCalendar() {
    return calendar;
  }

  /**
   * b/145671020: Deprecated for Profiles, but not for Contacts.
   * @param calendar calendar or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setCalendar(java.util.List<AppsPeopleOzExternalMergedpeopleapiCalendar> calendar) {
    this.calendar = calendar;
    return this;
  }

  /**
   * @return value or {@code null} for none
   */
  public java.util.List<AppsPeopleOzExternalMergedpeopleapiCertifiedBornBefore> getCertifiedBornBefore() {
    return certifiedBornBefore;
  }

  /**
   * @param certifiedBornBefore certifiedBornBefore or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setCertifiedBornBefore(java.util.List<AppsPeopleOzExternalMergedpeopleapiCertifiedBornBefore> certifiedBornBefore) {
    this.certifiedBornBefore = certifiedBornBefore;
    return this;
  }

  /**
   * Circles that this person is a member of.
   * @return value or {@code null} for none
   */
  public java.util.List<AppsPeopleOzExternalMergedpeopleapiCircleMembership> getCircleMembership() {
    return circleMembership;
  }

  /**
   * Circles that this person is a member of.
   * @param circleMembership circleMembership or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setCircleMembership(java.util.List<AppsPeopleOzExternalMergedpeopleapiCircleMembership> circleMembership) {
    this.circleMembership = circleMembership;
    return this;
  }

  /**
   * @return value or {@code null} for none
   */
  public java.util.List<AppsPeopleOzExternalMergedpeopleapiClientData> getClientData() {
    return clientData;
  }

  /**
   * @param clientData clientData or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setClientData(java.util.List<AppsPeopleOzExternalMergedpeopleapiClientData> clientData) {
    this.clientData = clientData;
    return this;
  }

  /**
   * @return value or {@code null} for none
   */
  public java.util.List<AppsPeopleOzExternalMergedpeopleapiCommunicationEmail> getCommunicationEmail() {
    return communicationEmail;
  }

  /**
   * @param communicationEmail communicationEmail or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setCommunicationEmail(java.util.List<AppsPeopleOzExternalMergedpeopleapiCommunicationEmail> communicationEmail) {
    this.communicationEmail = communicationEmail;
    return this;
  }

  /**
   * Reminder to connect with a Contact (part of go/people-prompts). Also contains contact-level
   * prompts settings. Each Contact can have a single `connection_reminder` (but can have multiple
   * Prompts inside of it). Field is repeated per PeopleAPI data model go/people-api-
   * concepts#repeated. Only supported for CONTACT container.
   * @return value or {@code null} for none
   */
  public java.util.List<AppsPeopleOzExternalMergedpeopleapiConnectionReminder> getConnectionReminder() {
    return connectionReminder;
  }

  /**
   * Reminder to connect with a Contact (part of go/people-prompts). Also contains contact-level
   * prompts settings. Each Contact can have a single `connection_reminder` (but can have multiple
   * Prompts inside of it). Field is repeated per PeopleAPI data model go/people-api-
   * concepts#repeated. Only supported for CONTACT container.
   * @param connectionReminder connectionReminder or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setConnectionReminder(java.util.List<AppsPeopleOzExternalMergedpeopleapiConnectionReminder> connectionReminder) {
    this.connectionReminder = connectionReminder;
    return this;
  }

  /**
   * @return value or {@code null} for none
   */
  public java.util.List<AppsPeopleOzExternalMergedpeopleapiContactCreateContextInfo> getContactCreateContextInfo() {
    return contactCreateContextInfo;
  }

  /**
   * @param contactCreateContextInfo contactCreateContextInfo or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setContactCreateContextInfo(java.util.List<AppsPeopleOzExternalMergedpeopleapiContactCreateContextInfo> contactCreateContextInfo) {
    this.contactCreateContextInfo = contactCreateContextInfo;
    return this;
  }

  /**
   * @return value or {@code null} for none
   */
  public java.util.List<AppsPeopleOzExternalMergedpeopleapiContactEditContextInfo> getContactEditContextInfo() {
    return contactEditContextInfo;
  }

  /**
   * @param contactEditContextInfo contactEditContextInfo or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setContactEditContextInfo(java.util.List<AppsPeopleOzExternalMergedpeopleapiContactEditContextInfo> contactEditContextInfo) {
    this.contactEditContextInfo = contactEditContextInfo;
    return this;
  }

  /**
   * Contact groups that this person is a member of.
   * @return value or {@code null} for none
   */
  public java.util.List<AppsPeopleOzExternalMergedpeopleapiContactGroupMembership> getContactGroupMembership() {
    return contactGroupMembership;
  }

  /**
   * Contact groups that this person is a member of.
   * @param contactGroupMembership contactGroupMembership or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setContactGroupMembership(java.util.List<AppsPeopleOzExternalMergedpeopleapiContactGroupMembership> contactGroupMembership) {
    this.contactGroupMembership = contactGroupMembership;
    return this;
  }

  /**
   * @return value or {@code null} for none
   */
  public java.util.List<AppsPeopleOzExternalMergedpeopleapiContactPromptSettingsInfo> getContactPromptSettingsInfo() {
    return contactPromptSettingsInfo;
  }

  /**
   * @param contactPromptSettingsInfo contactPromptSettingsInfo or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setContactPromptSettingsInfo(java.util.List<AppsPeopleOzExternalMergedpeopleapiContactPromptSettingsInfo> contactPromptSettingsInfo) {
    this.contactPromptSettingsInfo = contactPromptSettingsInfo;
    return this;
  }

  /**
   * Contact state and related metadata. See go/fbs-contacts-trash. If this field was requested but
   * is not set on the Person then the contact is in the DEFAULT contact state. This field is read-
   * only, and should not be set on a mutate (e.g. UpdatePerson) call. Clients must call the
   * explicit APIs (e.g. UntrashPerson) to change contact state.
   * @return value or {@code null} for none
   */
  public java.util.List<AppsPeopleOzExternalMergedpeopleapiContactStateInfo> getContactStateInfo() {
    return contactStateInfo;
  }

  /**
   * Contact state and related metadata. See go/fbs-contacts-trash. If this field was requested but
   * is not set on the Person then the contact is in the DEFAULT contact state. This field is read-
   * only, and should not be set on a mutate (e.g. UpdatePerson) call. Clients must call the
   * explicit APIs (e.g. UntrashPerson) to change contact state.
   * @param contactStateInfo contactStateInfo or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setContactStateInfo(java.util.List<AppsPeopleOzExternalMergedpeopleapiContactStateInfo> contactStateInfo) {
    this.contactStateInfo = contactStateInfo;
    return this;
  }

  /**
   * DEPRECATED. Now always returns a default cover photo. See go/sunset-cover-photo.
   * @return value or {@code null} for none
   */
  public java.util.List<AppsPeopleOzExternalMergedpeopleapiCoverPhoto> getCoverPhoto() {
    return coverPhoto;
  }

  /**
   * DEPRECATED. Now always returns a default cover photo. See go/sunset-cover-photo.
   * @param coverPhoto coverPhoto or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setCoverPhoto(java.util.List<AppsPeopleOzExternalMergedpeopleapiCoverPhoto> coverPhoto) {
    this.coverPhoto = coverPhoto;
    return this;
  }

  /**
   * @return value or {@code null} for none
   */
  public java.util.List<AppsPeopleOzExternalMergedpeopleapiCustomSchemaField> getCustomSchemaField() {
    return customSchemaField;
  }

  /**
   * @param customSchemaField customSchemaField or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setCustomSchemaField(java.util.List<AppsPeopleOzExternalMergedpeopleapiCustomSchemaField> customSchemaField) {
    this.customSchemaField = customSchemaField;
    return this;
  }

  /**
   * @return value or {@code null} for none
   */
  public java.util.List<AppsPeopleOzExternalMergedpeopleapiEmail> getEmail() {
    return email;
  }

  /**
   * @param email email or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setEmail(java.util.List<AppsPeopleOzExternalMergedpeopleapiEmail> email) {
    this.email = email;
    return this;
  }

  /**
   * Emergency information. See go/emergency-trusted-contacts-papi.
   * @return value or {@code null} for none
   */
  public java.util.List<AppsPeopleOzExternalMergedpeopleapiEmergencyInfo> getEmergencyInfo() {
    return emergencyInfo;
  }

  /**
   * Emergency information. See go/emergency-trusted-contacts-papi.
   * @param emergencyInfo emergencyInfo or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setEmergencyInfo(java.util.List<AppsPeopleOzExternalMergedpeopleapiEmergencyInfo> emergencyInfo) {
    this.emergencyInfo = emergencyInfo;
    return this;
  }

  /**
   * Event is currently in use by contacts.
   * @return value or {@code null} for none
   */
  public java.util.List<AppsPeopleOzExternalMergedpeopleapiEvent> getEvent() {
    return event;
  }

  /**
   * Event is currently in use by contacts.
   * @param event event or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setEvent(java.util.List<AppsPeopleOzExternalMergedpeopleapiEvent> event) {
    this.event = event;
    return this;
  }

  /**
   * Data added by extensions that are not specific to a particular field.
   * @return value or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPersonExtendedData getExtendedData() {
    return extendedData;
  }

  /**
   * Data added by extensions that are not specific to a particular field.
   * @param extendedData extendedData or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setExtendedData(AppsPeopleOzExternalMergedpeopleapiPersonExtendedData extendedData) {
    this.extendedData = extendedData;
    return this;
  }

  /**
   * @return value or {@code null} for none
   */
  public java.util.List<AppsPeopleOzExternalMergedpeopleapiExternalId> getExternalId() {
    return externalId;
  }

  /**
   * @param externalId externalId or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setExternalId(java.util.List<AppsPeopleOzExternalMergedpeopleapiExternalId> externalId) {
    this.externalId = externalId;
    return this;
  }

  /**
   * @return value or {@code null} for none
   */
  public java.util.List<AppsPeopleOzExternalMergedpeopleapiFileAs> getFileAs() {
    return fileAs;
  }

  /**
   * @param fileAs fileAs or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setFileAs(java.util.List<AppsPeopleOzExternalMergedpeopleapiFileAs> fileAs) {
    this.fileAs = fileAs;
    return this;
  }

  /**
   * A fingerprint that can be used to reliably determine if a resource has changed. Externally it
   * is used as part of the etag.
   * @return value or {@code null} for none
   */
  public java.lang.String getFingerprint() {
    return fingerprint;
  }

  /**
   * A fingerprint that can be used to reliably determine if a resource has changed. Externally it
   * is used as part of the etag.
   * @param fingerprint fingerprint or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setFingerprint(java.lang.String fingerprint) {
    this.fingerprint = fingerprint;
    return this;
  }

  /**
   * @return value or {@code null} for none
   */
  public java.util.List<AppsPeopleOzExternalMergedpeopleapiGender> getGender() {
    return gender;
  }

  /**
   * @param gender gender or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setGender(java.util.List<AppsPeopleOzExternalMergedpeopleapiGender> gender) {
    this.gender = gender;
    return this;
  }

  /**
   * @return value or {@code null} for none
   */
  public java.util.List<AppsPeopleOzExternalMergedpeopleapiIm> getIm() {
    return im;
  }

  /**
   * @param im im or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setIm(java.util.List<AppsPeopleOzExternalMergedpeopleapiIm> im) {
    this.im = im;
    return this;
  }

  /**
   * Ways to send in-app notifications to this person. See go/reachability. This field is read-only
   * and ignored for mutates.
   * @return value or {@code null} for none
   */
  public java.util.List<AppsPeopleOzExternalMergedpeopleapiInAppNotificationTarget> getInAppNotificationTarget() {
    return inAppNotificationTarget;
  }

  /**
   * Ways to send in-app notifications to this person. See go/reachability. This field is read-only
   * and ignored for mutates.
   * @param inAppNotificationTarget inAppNotificationTarget or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setInAppNotificationTarget(java.util.List<AppsPeopleOzExternalMergedpeopleapiInAppNotificationTarget> inAppNotificationTarget) {
    this.inAppNotificationTarget = inAppNotificationTarget;
    return this;
  }

  /**
   * Used only by profile service, deprecated for PeopleAPI and Sharpen. If you aren't sure, contact
   * people-api-users@ and profile-service-eng@.
   * @return value or {@code null} for none
   */
  public java.util.List<AppsPeopleOzExternalMergedpeopleapiInAppReachability> getInAppReachability() {
    return inAppReachability;
  }

  /**
   * Used only by profile service, deprecated for PeopleAPI and Sharpen. If you aren't sure, contact
   * people-api-users@ and profile-service-eng@.
   * @param inAppReachability inAppReachability or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setInAppReachability(java.util.List<AppsPeopleOzExternalMergedpeopleapiInAppReachability> inAppReachability) {
    this.inAppReachability = inAppReachability;
    return this;
  }

  /**
   * DEPRECATED. This field isn't populated in people.list.
   * @return value or {@code null} for none
   */
  public java.util.List<AppsPeopleOzExternalMergedpeopleapiInteractionSettings> getInteractionSettings() {
    return interactionSettings;
  }

  /**
   * DEPRECATED. This field isn't populated in people.list.
   * @param interactionSettings interactionSettings or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setInteractionSettings(java.util.List<AppsPeopleOzExternalMergedpeopleapiInteractionSettings> interactionSettings) {
    this.interactionSettings = interactionSettings;
    return this;
  }

  /**
   * @return value or {@code null} for none
   */
  public java.util.List<AppsPeopleOzExternalMergedpeopleapiInterest> getInterest() {
    return interest;
  }

  /**
   * @param interest interest or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setInterest(java.util.List<AppsPeopleOzExternalMergedpeopleapiInterest> interest) {
    this.interest = interest;
    return this;
  }

  /**
   * @return value or {@code null} for none
   */
  public java.util.List<AppsPeopleOzExternalMergedpeopleapiLanguage> getLanguage() {
    return language;
  }

  /**
   * @param language language or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setLanguage(java.util.List<AppsPeopleOzExternalMergedpeopleapiLanguage> language) {
    this.language = language;
    return this;
  }

  /**
   * DEPRECATED. This field was only for backwards compatibility with legacy GData callers, and
   * should not be used by new clients. Legacy fields used for mobile clients.
   * @return value or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiLegacyFields getLegacyFields() {
    return legacyFields;
  }

  /**
   * DEPRECATED. This field was only for backwards compatibility with legacy GData callers, and
   * should not be used by new clients. Legacy fields used for mobile clients.
   * @param legacyFields legacyFields or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setLegacyFields(AppsPeopleOzExternalMergedpeopleapiLegacyFields legacyFields) {
    this.legacyFields = legacyFields;
    return this;
  }

  /**
   * Settings for the limited profile. See go/limited-profiles-api.
   * @return value or {@code null} for none
   */
  public java.util.List<AppsPeopleOzExternalMergedpeopleapiLimitedProfileSettingsField> getLimitedProfileSettings() {
    return limitedProfileSettings;
  }

  /**
   * Settings for the limited profile. See go/limited-profiles-api.
   * @param limitedProfileSettings limitedProfileSettings or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setLimitedProfileSettings(java.util.List<AppsPeopleOzExternalMergedpeopleapiLimitedProfileSettingsField> limitedProfileSettings) {
    this.limitedProfileSettings = limitedProfileSettings;
    return this;
  }

  /**
   * Other person resources linked indirectly by an edge. The full person or just the IDs may be
   * populated depending on request parameters. We consider linked people distinct people, but they
   * share information. Example: A contact with two outgoing edges. The two edges are considered
   * separate, but linked people.
   * @return value or {@code null} for none
   */
  public java.util.List<AppsPeopleOzExternalMergedpeopleapiPerson> getLinkedPerson() {
    return linkedPerson;
  }

  /**
   * Other person resources linked indirectly by an edge. The full person or just the IDs may be
   * populated depending on request parameters. We consider linked people distinct people, but they
   * share information. Example: A contact with two outgoing edges. The two edges are considered
   * separate, but linked people.
   * @param linkedPerson linkedPerson or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setLinkedPerson(java.util.List<AppsPeopleOzExternalMergedpeopleapiPerson> linkedPerson) {
    this.linkedPerson = linkedPerson;
    return this;
  }

  /**
   * @return value or {@code null} for none
   */
  public java.util.List<AppsPeopleOzExternalMergedpeopleapiLocation> getLocation() {
    return location;
  }

  /**
   * @param location location or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setLocation(java.util.List<AppsPeopleOzExternalMergedpeopleapiLocation> location) {
    this.location = location;
    return this;
  }

  /**
   * @return value or {@code null} for none
   */
  public java.util.List<AppsPeopleOzExternalMergedpeopleapiManagementUpchain> getManagementUpchain() {
    return managementUpchain;
  }

  /**
   * @param managementUpchain managementUpchain or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setManagementUpchain(java.util.List<AppsPeopleOzExternalMergedpeopleapiManagementUpchain> managementUpchain) {
    this.managementUpchain = managementUpchain;
    return this;
  }

  /**
   * MapsProfile, see go/product-profiles-backend-api
   * @return value or {@code null} for none
   */
  public java.util.List<AppsPeopleOzExternalMergedpeopleapiMapsProfile> getMapsProfile() {
    return mapsProfile;
  }

  /**
   * MapsProfile, see go/product-profiles-backend-api
   * @param mapsProfile mapsProfile or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setMapsProfile(java.util.List<AppsPeopleOzExternalMergedpeopleapiMapsProfile> mapsProfile) {
    this.mapsProfile = mapsProfile;
    return this;
  }

  /**
   * DEPRECATED. Please use `circle_membership` or `contact_group_membership` instead. Contact-
   * groups and circles that this person is a member of.
   * @return value or {@code null} for none
   */
  public java.util.List<AppsPeopleOzExternalMergedpeopleapiMembership> getMembership() {
    return membership;
  }

  /**
   * DEPRECATED. Please use `circle_membership` or `contact_group_membership` instead. Contact-
   * groups and circles that this person is a member of.
   * @param membership membership or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setMembership(java.util.List<AppsPeopleOzExternalMergedpeopleapiMembership> membership) {
    this.membership = membership;
    return this;
  }

  /**
   * @return value or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPersonMetadata getMetadata() {
    return metadata;
  }

  /**
   * @param metadata metadata or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setMetadata(AppsPeopleOzExternalMergedpeopleapiPersonMetadata metadata) {
    this.metadata = metadata;
    return this;
  }

  /**
   * @return value or {@code null} for none
   */
  public java.util.List<AppsPeopleOzExternalMergedpeopleapiMission> getMission() {
    return mission;
  }

  /**
   * @param mission mission or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setMission(java.util.List<AppsPeopleOzExternalMergedpeopleapiMission> mission) {
    this.mission = mission;
    return this;
  }

  /**
   * See go/people-api-howto:names for details about names in PeopleAPI.
   * @return value or {@code null} for none
   */
  public java.util.List<AppsPeopleOzExternalMergedpeopleapiName> getName() {
    return name;
  }

  /**
   * See go/people-api-howto:names for details about names in PeopleAPI.
   * @param name name or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setName(java.util.List<AppsPeopleOzExternalMergedpeopleapiName> name) {
    this.name = name;
    return this;
  }

  /**
   * Metadata info for a user's name pronunciation audio. See go/name-pronunication-backend.
   * @return value or {@code null} for none
   */
  public java.util.List<AppsPeopleOzExternalMergedpeopleapiNamePronunciationAudioMetadataInfo> getNamePronunciationAudioMetadataInfo() {
    return namePronunciationAudioMetadataInfo;
  }

  /**
   * Metadata info for a user's name pronunciation audio. See go/name-pronunication-backend.
   * @param namePronunciationAudioMetadataInfo namePronunciationAudioMetadataInfo or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setNamePronunciationAudioMetadataInfo(java.util.List<AppsPeopleOzExternalMergedpeopleapiNamePronunciationAudioMetadataInfo> namePronunciationAudioMetadataInfo) {
    this.namePronunciationAudioMetadataInfo = namePronunciationAudioMetadataInfo;
    return this;
  }

  /**
   * @return value or {@code null} for none
   */
  public java.util.List<AppsPeopleOzExternalMergedpeopleapiNickname> getNickname() {
    return nickname;
  }

  /**
   * @param nickname nickname or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setNickname(java.util.List<AppsPeopleOzExternalMergedpeopleapiNickname> nickname) {
    this.nickname = nickname;
    return this;
  }

  /**
   * @return value or {@code null} for none
   */
  public java.util.List<AppsPeopleOzExternalMergedpeopleapiOccupation> getOccupation() {
    return occupation;
  }

  /**
   * @param occupation occupation or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setOccupation(java.util.List<AppsPeopleOzExternalMergedpeopleapiOccupation> occupation) {
    this.occupation = occupation;
    return this;
  }

  /**
   * @return value or {@code null} for none
   */
  public java.util.List<AppsPeopleOzExternalMergedpeopleapiOrganization> getOrganization() {
    return organization;
  }

  /**
   * @param organization organization or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setOrganization(java.util.List<AppsPeopleOzExternalMergedpeopleapiOrganization> organization) {
    this.organization = organization;
    return this;
  }

  /**
   * Legacy arbitrary key value fields
   * @return value or {@code null} for none
   */
  public java.util.List<AppsPeopleOzExternalMergedpeopleapiOtherKeyword> getOtherKeyword() {
    return otherKeyword;
  }

  /**
   * Legacy arbitrary key value fields
   * @param otherKeyword otherKeyword or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setOtherKeyword(java.util.List<AppsPeopleOzExternalMergedpeopleapiOtherKeyword> otherKeyword) {
    this.otherKeyword = otherKeyword;
    return this;
  }

  /**
   * DEPRECATED. This feature was stubbed, but never implemented. This field will not be populated
   * with any results.
   * @return value or {@code null} for none
   */
  public java.util.List<AppsPeopleOzExternalMergedpeopleapiPerson> getPeopleInCommon() {
    return peopleInCommon;
  }

  /**
   * DEPRECATED. This feature was stubbed, but never implemented. This field will not be populated
   * with any results.
   * @param peopleInCommon peopleInCommon or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setPeopleInCommon(java.util.List<AppsPeopleOzExternalMergedpeopleapiPerson> peopleInCommon) {
    this.peopleInCommon = peopleInCommon;
    return this;
  }

  /**
   * In order to request this field, the client must set desired PersonAttributeKey in the dedicated
   * RequestMask field `person_attribute`. Unlike other person fields, this field cannot be
   * requested in the `include_field` field mask.
   * @return value or {@code null} for none
   */
  public java.util.List<AppsPeopleOzExternalMergedpeopleapiPersonAttribute> getPersonAttribute() {
    return personAttribute;
  }

  /**
   * In order to request this field, the client must set desired PersonAttributeKey in the dedicated
   * RequestMask field `person_attribute`. Unlike other person fields, this field cannot be
   * requested in the `include_field` field mask.
   * @param personAttribute personAttribute or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setPersonAttribute(java.util.List<AppsPeopleOzExternalMergedpeopleapiPersonAttribute> personAttribute) {
    this.personAttribute = personAttribute;
    return this;
  }

  /**
   * The ID of the person. This is determined by the backend, is unstable, and may not be the same
   * as a user_id. Internally referred as 'personKey' to distinguish from the common PersonId pojo.
   * See go/people-api-concepts#person-id
   * @return value or {@code null} for none
   */
  public java.lang.String getPersonId() {
    return personId;
  }

  /**
   * The ID of the person. This is determined by the backend, is unstable, and may not be the same
   * as a user_id. Internally referred as 'personKey' to distinguish from the common PersonId pojo.
   * See go/people-api-concepts#person-id
   * @param personId personId or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setPersonId(java.lang.String personId) {
    this.personId = personId;
    return this;
  }

  /**
   * @return value or {@code null} for none
   */
  public java.util.List<AppsPeopleOzExternalMergedpeopleapiPhone> getPhone() {
    return phone;
  }

  /**
   * @param phone phone or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setPhone(java.util.List<AppsPeopleOzExternalMergedpeopleapiPhone> phone) {
    this.phone = phone;
    return this;
  }

  /**
   * See go/people-api-concepts/photos for usage details
   * @return value or {@code null} for none
   */
  public java.util.List<AppsPeopleOzExternalMergedpeopleapiPhoto> getPhoto() {
    return photo;
  }

  /**
   * See go/people-api-concepts/photos for usage details
   * @param photo photo or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setPhoto(java.util.List<AppsPeopleOzExternalMergedpeopleapiPhoto> photo) {
    this.photo = photo;
    return this;
  }

  /**
   * Data specific to places. Data which also applies to contacts and profiles such as name, phone,
   * photo, etc. are returned in the corresponding Person fields.
   * @return value or {@code null} for none
   */
  public java.util.List<AppsPeopleOzExternalMergedpeopleapiPlaceDetails> getPlaceDetails() {
    return placeDetails;
  }

  /**
   * Data specific to places. Data which also applies to contacts and profiles such as name, phone,
   * photo, etc. are returned in the corresponding Person fields.
   * @param placeDetails placeDetails or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setPlaceDetails(java.util.List<AppsPeopleOzExternalMergedpeopleapiPlaceDetails> placeDetails) {
    this.placeDetails = placeDetails;
    return this;
  }

  /**
   * DEPRECATED. Info about plus pages in the person.
   * @return value or {@code null} for none
   */
  public java.util.List<AppsPeopleOzExternalMergedpeopleapiPlusPageInfo> getPlusPageInfo() {
    return plusPageInfo;
  }

  /**
   * DEPRECATED. Info about plus pages in the person.
   * @param plusPageInfo plusPageInfo or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setPlusPageInfo(java.util.List<AppsPeopleOzExternalMergedpeopleapiPlusPageInfo> plusPageInfo) {
    this.plusPageInfo = plusPageInfo;
    return this;
  }

  /**
   * @return value or {@code null} for none
   */
  public java.util.List<AppsPeopleOzExternalMergedpeopleapiPosixAccount> getPosixAccount() {
    return posixAccount;
  }

  /**
   * @param posixAccount posixAccount or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setPosixAccount(java.util.List<AppsPeopleOzExternalMergedpeopleapiPosixAccount> posixAccount) {
    this.posixAccount = posixAccount;
    return this;
  }

  /**
   * DEPRECATED. (go/people-api-concepts#repeated): Use person.profile_url_repeated instead. Access
   * to this field is restricted to a set of legacy clients. This is a Google+-only field. See
   * go/fbs-g+-deprecation. NOTE: `Person.profile_url` is only populated for profile-centric person.
   * @return value or {@code null} for none
   */
  public java.lang.String getProfileUrl() {
    return profileUrl;
  }

  /**
   * DEPRECATED. (go/people-api-concepts#repeated): Use person.profile_url_repeated instead. Access
   * to this field is restricted to a set of legacy clients. This is a Google+-only field. See
   * go/fbs-g+-deprecation. NOTE: `Person.profile_url` is only populated for profile-centric person.
   * @param profileUrl profileUrl or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setProfileUrl(java.lang.String profileUrl) {
    this.profileUrl = profileUrl;
    return this;
  }

  /**
   * This is a Google+-only field. See go/fbs-g+-deprecation.
   * @return value or {@code null} for none
   */
  public java.util.List<AppsPeopleOzExternalMergedpeopleapiProfileUrl> getProfileUrlRepeated() {
    return profileUrlRepeated;
  }

  /**
   * This is a Google+-only field. See go/fbs-g+-deprecation.
   * @param profileUrlRepeated profileUrlRepeated or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setProfileUrlRepeated(java.util.List<AppsPeopleOzExternalMergedpeopleapiProfileUrl> profileUrlRepeated) {
    this.profileUrlRepeated = profileUrlRepeated;
    return this;
  }

  /**
   * Pronouns are not supported for consumer profiles. See go/pronouns-in-people-system-prd for more
   * details.
   * @return value or {@code null} for none
   */
  public java.util.List<AppsPeopleOzExternalMergedpeopleapiPronoun> getPronoun() {
    return pronoun;
  }

  /**
   * Pronouns are not supported for consumer profiles. See go/pronouns-in-people-system-prd for more
   * details.
   * @param pronoun pronoun or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setPronoun(java.util.List<AppsPeopleOzExternalMergedpeopleapiPronoun> pronoun) {
    this.pronoun = pronoun;
    return this;
  }

  /**
   * Information about the profiles that are a part of this Person. This is only applicable to
   * PROFILE and DOMAIN_PROFILE containers.
   * @return value or {@code null} for none
   */
  public java.util.List<AppsPeopleOzExternalMergedpeopleapiReadOnlyProfileInfo> getReadOnlyProfileInfo() {
    return readOnlyProfileInfo;
  }

  /**
   * Information about the profiles that are a part of this Person. This is only applicable to
   * PROFILE and DOMAIN_PROFILE containers.
   * @param readOnlyProfileInfo readOnlyProfileInfo or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setReadOnlyProfileInfo(java.util.List<AppsPeopleOzExternalMergedpeopleapiReadOnlyProfileInfo> readOnlyProfileInfo) {
    this.readOnlyProfileInfo = readOnlyProfileInfo;
    return this;
  }

  /**
   * See go/relation-vs-relationship for relation vs relationship explanation.
   * @return value or {@code null} for none
   */
  public java.util.List<AppsPeopleOzExternalMergedpeopleapiRelation> getRelation() {
    return relation;
  }

  /**
   * See go/relation-vs-relationship for relation vs relationship explanation.
   * @param relation relation or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setRelation(java.util.List<AppsPeopleOzExternalMergedpeopleapiRelation> relation) {
    this.relation = relation;
    return this;
  }

  /**
   * DEPRECATED. No data is returned for this field anymore.
   * @return value or {@code null} for none
   */
  public java.util.List<AppsPeopleOzExternalMergedpeopleapiRelationshipInterest> getRelationshipInterest() {
    return relationshipInterest;
  }

  /**
   * DEPRECATED. No data is returned for this field anymore.
   * @param relationshipInterest relationshipInterest or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setRelationshipInterest(java.util.List<AppsPeopleOzExternalMergedpeopleapiRelationshipInterest> relationshipInterest) {
    this.relationshipInterest = relationshipInterest;
    return this;
  }

  /**
   * DEPRECATED. No data is returned for this field anymore.
   * @return value or {@code null} for none
   */
  public java.util.List<AppsPeopleOzExternalMergedpeopleapiRelationshipStatus> getRelationshipStatus() {
    return relationshipStatus;
  }

  /**
   * DEPRECATED. No data is returned for this field anymore.
   * @param relationshipStatus relationshipStatus or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setRelationshipStatus(java.util.List<AppsPeopleOzExternalMergedpeopleapiRelationshipStatus> relationshipStatus) {
    this.relationshipStatus = relationshipStatus;
    return this;
  }

  /**
   * @return value or {@code null} for none
   */
  public java.util.List<AppsPeopleOzExternalMergedpeopleapiRightOfPublicityState> getRightOfPublicityState() {
    return rightOfPublicityState;
  }

  /**
   * @param rightOfPublicityState rightOfPublicityState or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setRightOfPublicityState(java.util.List<AppsPeopleOzExternalMergedpeopleapiRightOfPublicityState> rightOfPublicityState) {
    this.rightOfPublicityState = rightOfPublicityState;
    return this;
  }

  /**
   * Data specific to rosters (such as Google Groups and Chat Rooms). Data which also applies to
   * contacts and profiles such as name, email, and photo, etc are returned in the corresponding
   * Person fields.
   * @return value or {@code null} for none
   */
  public java.util.List<AppsPeopleOzExternalMergedpeopleapiRosterDetails> getRosterDetails() {
    return rosterDetails;
  }

  /**
   * Data specific to rosters (such as Google Groups and Chat Rooms). Data which also applies to
   * contacts and profiles such as name, email, and photo, etc are returned in the corresponding
   * Person fields.
   * @param rosterDetails rosterDetails or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setRosterDetails(java.util.List<AppsPeopleOzExternalMergedpeopleapiRosterDetails> rosterDetails) {
    this.rosterDetails = rosterDetails;
    return this;
  }

  /**
   * Profile for Janata and Search. go/janata-profile-in-sgbe
   * @return value or {@code null} for none
   */
  public java.util.List<AppsPeopleOzExternalMergedpeopleapiSearchProfile> getSearchProfile() {
    return searchProfile;
  }

  /**
   * Profile for Janata and Search. go/janata-profile-in-sgbe
   * @param searchProfile searchProfile or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setSearchProfile(java.util.List<AppsPeopleOzExternalMergedpeopleapiSearchProfile> searchProfile) {
    this.searchProfile = searchProfile;
    return this;
  }

  /**
   * SipAddress is currently in use by contacts.
   * @return value or {@code null} for none
   */
  public java.util.List<AppsPeopleOzExternalMergedpeopleapiSipAddress> getSipAddress() {
    return sipAddress;
  }

  /**
   * SipAddress is currently in use by contacts.
   * @param sipAddress sipAddress or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setSipAddress(java.util.List<AppsPeopleOzExternalMergedpeopleapiSipAddress> sipAddress) {
    this.sipAddress = sipAddress;
    return this;
  }

  /**
   * @return value or {@code null} for none
   */
  public java.util.List<AppsPeopleOzExternalMergedpeopleapiSkills> getSkills() {
    return skills;
  }

  /**
   * @param skills skills or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setSkills(java.util.List<AppsPeopleOzExternalMergedpeopleapiSkills> skills) {
    this.skills = skills;
    return this;
  }

  /**
   * NOTE: this is used by go/starlight, but not actually used or returned in PeopleAPI. See
   * b/27281119 for context. Please reach out to people-api-eng@ if you have questions.
   * @return value or {@code null} for none
   */
  public java.util.List<AppsPeopleOzExternalMergedpeopleapiSocialConnection> getSocialConnection() {
    return socialConnection;
  }

  /**
   * NOTE: this is used by go/starlight, but not actually used or returned in PeopleAPI. See
   * b/27281119 for context. Please reach out to people-api-eng@ if you have questions.
   * @param socialConnection socialConnection or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setSocialConnection(java.util.List<AppsPeopleOzExternalMergedpeopleapiSocialConnection> socialConnection) {
    this.socialConnection = socialConnection;
    return this;
  }

  /**
   * @return value or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiSortKeys getSortKeys() {
    return sortKeys;
  }

  /**
   * @param sortKeys sortKeys or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setSortKeys(AppsPeopleOzExternalMergedpeopleapiSortKeys sortKeys) {
    this.sortKeys = sortKeys;
    return this;
  }

  /**
   * @return value or {@code null} for none
   */
  public java.util.List<AppsPeopleOzExternalMergedpeopleapiSshPublicKey> getSshPublicKey() {
    return sshPublicKey;
  }

  /**
   * @param sshPublicKey sshPublicKey or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setSshPublicKey(java.util.List<AppsPeopleOzExternalMergedpeopleapiSshPublicKey> sshPublicKey) {
    this.sshPublicKey = sshPublicKey;
    return this;
  }

  /**
   * Only supported for PLACE container results, no data will be returned for profiles.
   * @return value or {@code null} for none
   */
  public java.util.List<AppsPeopleOzExternalMergedpeopleapiTagline> getTagline() {
    return tagline;
  }

  /**
   * Only supported for PLACE container results, no data will be returned for profiles.
   * @param tagline tagline or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setTagline(java.util.List<AppsPeopleOzExternalMergedpeopleapiTagline> tagline) {
    this.tagline = tagline;
    return this;
  }

  /**
   * DEPRECATED. *UNSUPPORTED*. This field is never populated.
   * @return value or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiTeamsExtendedData getTeamsExtendedData() {
    return teamsExtendedData;
  }

  /**
   * DEPRECATED. *UNSUPPORTED*. This field is never populated.
   * @param teamsExtendedData teamsExtendedData or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setTeamsExtendedData(AppsPeopleOzExternalMergedpeopleapiTeamsExtendedData teamsExtendedData) {
    this.teamsExtendedData = teamsExtendedData;
    return this;
  }

  /**
   * UserDefined is currently in use by contacts.
   * @return value or {@code null} for none
   */
  public java.util.List<AppsPeopleOzExternalMergedpeopleapiUserDefined> getUserDefined() {
    return userDefined;
  }

  /**
   * UserDefined is currently in use by contacts.
   * @param userDefined userDefined or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setUserDefined(java.util.List<AppsPeopleOzExternalMergedpeopleapiUserDefined> userDefined) {
    this.userDefined = userDefined;
    return this;
  }

  /**
   * Add annotation_id and metadata (product_source) for visible to guests contacts go/visible-to-
   * guests.
   * @return value or {@code null} for none
   */
  public java.util.List<AppsPeopleOzExternalMergedpeopleapiVisibleToGuests> getVisibleToGuests() {
    return visibleToGuests;
  }

  /**
   * Add annotation_id and metadata (product_source) for visible to guests contacts go/visible-to-
   * guests.
   * @param visibleToGuests visibleToGuests or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setVisibleToGuests(java.util.List<AppsPeopleOzExternalMergedpeopleapiVisibleToGuests> visibleToGuests) {
    this.visibleToGuests = visibleToGuests;
    return this;
  }

  /**
   * @return value or {@code null} for none
   */
  public java.util.List<AppsPeopleOzExternalMergedpeopleapiWebsite> getWebsite() {
    return website;
  }

  /**
   * @param website website or {@code null} for none
   */
  public AppsPeopleOzExternalMergedpeopleapiPerson setWebsite(java.util.List<AppsPeopleOzExternalMergedpeopleapiWebsite> website) {
    this.website = website;
    return this;
  }

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

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

}
