sig
  module Urls :
    sig
      type t = { label : string; _type : string; value : string; }
      val label : (GapiPlusV1Model.Person.Urls.t, string) GapiLens.t
      val _type : (GapiPlusV1Model.Person.Urls.t, string) GapiLens.t
      val value : (GapiPlusV1Model.Person.Urls.t, string) GapiLens.t
      val empty : GapiPlusV1Model.Person.Urls.t
      val render :
        GapiPlusV1Model.Person.Urls.t -> GapiJson.json_data_model list
      val parse :
        GapiPlusV1Model.Person.Urls.t ->
        GapiJson.json_data_model -> GapiPlusV1Model.Person.Urls.t
    end
  module PlacesLived :
    sig
      type t = { primary : bool; value : string; }
      val primary : (GapiPlusV1Model.Person.PlacesLived.t, bool) GapiLens.t
      val value : (GapiPlusV1Model.Person.PlacesLived.t, string) GapiLens.t
      val empty : GapiPlusV1Model.Person.PlacesLived.t
      val render :
        GapiPlusV1Model.Person.PlacesLived.t -> GapiJson.json_data_model list
      val parse :
        GapiPlusV1Model.Person.PlacesLived.t ->
        GapiJson.json_data_model -> GapiPlusV1Model.Person.PlacesLived.t
    end
  module Organizations :
    sig
      type t = {
        department : string;
        description : string;
        endDate : string;
        location : string;
        name : string;
        primary : bool;
        startDate : string;
        title : string;
        _type : string;
      }
      val department :
        (GapiPlusV1Model.Person.Organizations.t, string) GapiLens.t
      val description :
        (GapiPlusV1Model.Person.Organizations.t, string) GapiLens.t
      val endDate :
        (GapiPlusV1Model.Person.Organizations.t, string) GapiLens.t
      val location :
        (GapiPlusV1Model.Person.Organizations.t, string) GapiLens.t
      val name : (GapiPlusV1Model.Person.Organizations.t, string) GapiLens.t
      val primary : (GapiPlusV1Model.Person.Organizations.t, bool) GapiLens.t
      val startDate :
        (GapiPlusV1Model.Person.Organizations.t, string) GapiLens.t
      val title : (GapiPlusV1Model.Person.Organizations.t, string) GapiLens.t
      val _type : (GapiPlusV1Model.Person.Organizations.t, string) GapiLens.t
      val empty : GapiPlusV1Model.Person.Organizations.t
      val render :
        GapiPlusV1Model.Person.Organizations.t ->
        GapiJson.json_data_model list
      val parse :
        GapiPlusV1Model.Person.Organizations.t ->
        GapiJson.json_data_model -> GapiPlusV1Model.Person.Organizations.t
    end
  module Name :
    sig
      type t = {
        familyName : string;
        formatted : string;
        givenName : string;
        honorificPrefix : string;
        honorificSuffix : string;
        middleName : string;
      }
      val familyName : (GapiPlusV1Model.Person.Name.t, string) GapiLens.t
      val formatted : (GapiPlusV1Model.Person.Name.t, string) GapiLens.t
      val givenName : (GapiPlusV1Model.Person.Name.t, string) GapiLens.t
      val honorificPrefix :
        (GapiPlusV1Model.Person.Name.t, string) GapiLens.t
      val honorificSuffix :
        (GapiPlusV1Model.Person.Name.t, string) GapiLens.t
      val middleName : (GapiPlusV1Model.Person.Name.t, string) GapiLens.t
      val empty : GapiPlusV1Model.Person.Name.t
      val render :
        GapiPlusV1Model.Person.Name.t -> GapiJson.json_data_model list
      val parse :
        GapiPlusV1Model.Person.Name.t ->
        GapiJson.json_data_model -> GapiPlusV1Model.Person.Name.t
    end
  module Image :
    sig
      type t = { isDefault : bool; url : string; }
      val isDefault : (GapiPlusV1Model.Person.Image.t, bool) GapiLens.t
      val url : (GapiPlusV1Model.Person.Image.t, string) GapiLens.t
      val empty : GapiPlusV1Model.Person.Image.t
      val render :
        GapiPlusV1Model.Person.Image.t -> GapiJson.json_data_model list
      val parse :
        GapiPlusV1Model.Person.Image.t ->
        GapiJson.json_data_model -> GapiPlusV1Model.Person.Image.t
    end
  module Emails :
    sig
      type t = { _type : string; value : string; }
      val _type : (GapiPlusV1Model.Person.Emails.t, string) GapiLens.t
      val value : (GapiPlusV1Model.Person.Emails.t, string) GapiLens.t
      val empty : GapiPlusV1Model.Person.Emails.t
      val render :
        GapiPlusV1Model.Person.Emails.t -> GapiJson.json_data_model list
      val parse :
        GapiPlusV1Model.Person.Emails.t ->
        GapiJson.json_data_model -> GapiPlusV1Model.Person.Emails.t
    end
  module Cover :
    sig
      module CoverPhoto :
        sig
          type t = { height : int; url : string; width : int; }
          val height :
            (GapiPlusV1Model.Person.Cover.CoverPhoto.t, int) GapiLens.t
          val url :
            (GapiPlusV1Model.Person.Cover.CoverPhoto.t, string) GapiLens.t
          val width :
            (GapiPlusV1Model.Person.Cover.CoverPhoto.t, int) GapiLens.t
          val empty : GapiPlusV1Model.Person.Cover.CoverPhoto.t
          val render :
            GapiPlusV1Model.Person.Cover.CoverPhoto.t ->
            GapiJson.json_data_model list
          val parse :
            GapiPlusV1Model.Person.Cover.CoverPhoto.t ->
            GapiJson.json_data_model ->
            GapiPlusV1Model.Person.Cover.CoverPhoto.t
        end
      module CoverInfo :
        sig
          type t = { leftImageOffset : int; topImageOffset : int; }
          val leftImageOffset :
            (GapiPlusV1Model.Person.Cover.CoverInfo.t, int) GapiLens.t
          val topImageOffset :
            (GapiPlusV1Model.Person.Cover.CoverInfo.t, int) GapiLens.t
          val empty : GapiPlusV1Model.Person.Cover.CoverInfo.t
          val render :
            GapiPlusV1Model.Person.Cover.CoverInfo.t ->
            GapiJson.json_data_model list
          val parse :
            GapiPlusV1Model.Person.Cover.CoverInfo.t ->
            GapiJson.json_data_model ->
            GapiPlusV1Model.Person.Cover.CoverInfo.t
        end
      type t = {
        coverInfo : GapiPlusV1Model.Person.Cover.CoverInfo.t;
        coverPhoto : GapiPlusV1Model.Person.Cover.CoverPhoto.t;
        layout : string;
      }
      val coverInfo :
        (GapiPlusV1Model.Person.Cover.t,
         GapiPlusV1Model.Person.Cover.CoverInfo.t)
        GapiLens.t
      val coverPhoto :
        (GapiPlusV1Model.Person.Cover.t,
         GapiPlusV1Model.Person.Cover.CoverPhoto.t)
        GapiLens.t
      val layout : (GapiPlusV1Model.Person.Cover.t, string) GapiLens.t
      val empty : GapiPlusV1Model.Person.Cover.t
      val render :
        GapiPlusV1Model.Person.Cover.t -> GapiJson.json_data_model list
      val parse :
        GapiPlusV1Model.Person.Cover.t ->
        GapiJson.json_data_model -> GapiPlusV1Model.Person.Cover.t
    end
  module AgeRange :
    sig
      type t = { max : int; min : int; }
      val max : (GapiPlusV1Model.Person.AgeRange.t, int) GapiLens.t
      val min : (GapiPlusV1Model.Person.AgeRange.t, int) GapiLens.t
      val empty : GapiPlusV1Model.Person.AgeRange.t
      val render :
        GapiPlusV1Model.Person.AgeRange.t -> GapiJson.json_data_model list
      val parse :
        GapiPlusV1Model.Person.AgeRange.t ->
        GapiJson.json_data_model -> GapiPlusV1Model.Person.AgeRange.t
    end
  type t = {
    aboutMe : string;
    ageRange : GapiPlusV1Model.Person.AgeRange.t;
    birthday : string;
    braggingRights : string;
    circledByCount : int;
    cover : GapiPlusV1Model.Person.Cover.t;
    currentLocation : string;
    displayName : string;
    domain : string;
    emails : GapiPlusV1Model.Person.Emails.t list;
    etag : string;
    gender : string;
    id : string;
    image : GapiPlusV1Model.Person.Image.t;
    isPlusUser : bool;
    kind : string;
    language : string;
    name : GapiPlusV1Model.Person.Name.t;
    nickname : string;
    objectType : string;
    occupation : string;
    organizations : GapiPlusV1Model.Person.Organizations.t list;
    placesLived : GapiPlusV1Model.Person.PlacesLived.t list;
    plusOneCount : int;
    relationshipStatus : string;
    skills : string;
    tagline : string;
    url : string;
    urls : GapiPlusV1Model.Person.Urls.t list;
    verified : bool;
  }
  val aboutMe : (GapiPlusV1Model.Person.t, string) GapiLens.t
  val ageRange :
    (GapiPlusV1Model.Person.t, GapiPlusV1Model.Person.AgeRange.t) GapiLens.t
  val birthday : (GapiPlusV1Model.Person.t, string) GapiLens.t
  val braggingRights : (GapiPlusV1Model.Person.t, string) GapiLens.t
  val circledByCount : (GapiPlusV1Model.Person.t, int) GapiLens.t
  val cover :
    (GapiPlusV1Model.Person.t, GapiPlusV1Model.Person.Cover.t) GapiLens.t
  val currentLocation : (GapiPlusV1Model.Person.t, string) GapiLens.t
  val displayName : (GapiPlusV1Model.Person.t, string) GapiLens.t
  val domain : (GapiPlusV1Model.Person.t, string) GapiLens.t
  val emails :
    (GapiPlusV1Model.Person.t, GapiPlusV1Model.Person.Emails.t list)
    GapiLens.t
  val etag : (GapiPlusV1Model.Person.t, string) GapiLens.t
  val gender : (GapiPlusV1Model.Person.t, string) GapiLens.t
  val id : (GapiPlusV1Model.Person.t, string) GapiLens.t
  val image :
    (GapiPlusV1Model.Person.t, GapiPlusV1Model.Person.Image.t) GapiLens.t
  val isPlusUser : (GapiPlusV1Model.Person.t, bool) GapiLens.t
  val kind : (GapiPlusV1Model.Person.t, string) GapiLens.t
  val language : (GapiPlusV1Model.Person.t, string) GapiLens.t
  val name :
    (GapiPlusV1Model.Person.t, GapiPlusV1Model.Person.Name.t) GapiLens.t
  val nickname : (GapiPlusV1Model.Person.t, string) GapiLens.t
  val objectType : (GapiPlusV1Model.Person.t, string) GapiLens.t
  val occupation : (GapiPlusV1Model.Person.t, string) GapiLens.t
  val organizations :
    (GapiPlusV1Model.Person.t, GapiPlusV1Model.Person.Organizations.t list)
    GapiLens.t
  val placesLived :
    (GapiPlusV1Model.Person.t, GapiPlusV1Model.Person.PlacesLived.t list)
    GapiLens.t
  val plusOneCount : (GapiPlusV1Model.Person.t, int) GapiLens.t
  val relationshipStatus : (GapiPlusV1Model.Person.t, string) GapiLens.t
  val skills : (GapiPlusV1Model.Person.t, string) GapiLens.t
  val tagline : (GapiPlusV1Model.Person.t, string) GapiLens.t
  val url : (GapiPlusV1Model.Person.t, string) GapiLens.t
  val urls :
    (GapiPlusV1Model.Person.t, GapiPlusV1Model.Person.Urls.t list) GapiLens.t
  val verified : (GapiPlusV1Model.Person.t, bool) GapiLens.t
  val empty : GapiPlusV1Model.Person.t
  val render : GapiPlusV1Model.Person.t -> GapiJson.json_data_model list
  val parse :
    GapiPlusV1Model.Person.t ->
    GapiJson.json_data_model -> GapiPlusV1Model.Person.t
  val to_data_model : GapiPlusV1Model.Person.t -> GapiJson.json_data_model
  val of_data_model : GapiJson.json_data_model -> GapiPlusV1Model.Person.t
end