sig
  module Resharers :
    sig
      type t = { selfLink : string; totalItems : int; }
      val selfLink :
        (GapiPlusV1Model.Activity.Object.Resharers.t, string) GapiLens.t
      val totalItems :
        (GapiPlusV1Model.Activity.Object.Resharers.t, int) GapiLens.t
      val empty : GapiPlusV1Model.Activity.Object.Resharers.t
      val render :
        GapiPlusV1Model.Activity.Object.Resharers.t ->
        GapiJson.json_data_model list
      val parse :
        GapiPlusV1Model.Activity.Object.Resharers.t ->
        GapiJson.json_data_model ->
        GapiPlusV1Model.Activity.Object.Resharers.t
    end
  module Replies :
    sig
      type t = { selfLink : string; totalItems : int; }
      val selfLink :
        (GapiPlusV1Model.Activity.Object.Replies.t, string) GapiLens.t
      val totalItems :
        (GapiPlusV1Model.Activity.Object.Replies.t, int) GapiLens.t
      val empty : GapiPlusV1Model.Activity.Object.Replies.t
      val render :
        GapiPlusV1Model.Activity.Object.Replies.t ->
        GapiJson.json_data_model list
      val parse :
        GapiPlusV1Model.Activity.Object.Replies.t ->
        GapiJson.json_data_model -> GapiPlusV1Model.Activity.Object.Replies.t
    end
  module Plusoners :
    sig
      type t = { selfLink : string; totalItems : int; }
      val selfLink :
        (GapiPlusV1Model.Activity.Object.Plusoners.t, string) GapiLens.t
      val totalItems :
        (GapiPlusV1Model.Activity.Object.Plusoners.t, int) GapiLens.t
      val empty : GapiPlusV1Model.Activity.Object.Plusoners.t
      val render :
        GapiPlusV1Model.Activity.Object.Plusoners.t ->
        GapiJson.json_data_model list
      val parse :
        GapiPlusV1Model.Activity.Object.Plusoners.t ->
        GapiJson.json_data_model ->
        GapiPlusV1Model.Activity.Object.Plusoners.t
    end
  module Attachments :
    sig
      module Thumbnails :
        sig
          module Image :
            sig
              type t = {
                height : int;
                _type : string;
                url : string;
                width : int;
              }
              val height :
                (GapiPlusV1Model.Activity.Object.Attachments.Thumbnails.Image.t,
                 int)
                GapiLens.t
              val _type :
                (GapiPlusV1Model.Activity.Object.Attachments.Thumbnails.Image.t,
                 string)
                GapiLens.t
              val url :
                (GapiPlusV1Model.Activity.Object.Attachments.Thumbnails.Image.t,
                 string)
                GapiLens.t
              val width :
                (GapiPlusV1Model.Activity.Object.Attachments.Thumbnails.Image.t,
                 int)
                GapiLens.t
              val empty :
                GapiPlusV1Model.Activity.Object.Attachments.Thumbnails.Image.t
              val render :
                GapiPlusV1Model.Activity.Object.Attachments.Thumbnails.Image.t ->
                GapiJson.json_data_model list
              val parse :
                GapiPlusV1Model.Activity.Object.Attachments.Thumbnails.Image.t ->
                GapiJson.json_data_model ->
                GapiPlusV1Model.Activity.Object.Attachments.Thumbnails.Image.t
            end
          type t = {
            description : string;
            image :
              GapiPlusV1Model.Activity.Object.Attachments.Thumbnails.Image.t;
            url : string;
          }
          val description :
            (GapiPlusV1Model.Activity.Object.Attachments.Thumbnails.t,
             string)
            GapiLens.t
          val image :
            (GapiPlusV1Model.Activity.Object.Attachments.Thumbnails.t,
             GapiPlusV1Model.Activity.Object.Attachments.Thumbnails.Image.t)
            GapiLens.t
          val url :
            (GapiPlusV1Model.Activity.Object.Attachments.Thumbnails.t,
             string)
            GapiLens.t
          val empty :
            GapiPlusV1Model.Activity.Object.Attachments.Thumbnails.t
          val render :
            GapiPlusV1Model.Activity.Object.Attachments.Thumbnails.t ->
            GapiJson.json_data_model list
          val parse :
            GapiPlusV1Model.Activity.Object.Attachments.Thumbnails.t ->
            GapiJson.json_data_model ->
            GapiPlusV1Model.Activity.Object.Attachments.Thumbnails.t
        end
      module Image :
        sig
          type t = {
            height : int;
            _type : string;
            url : string;
            width : int;
          }
          val height :
            (GapiPlusV1Model.Activity.Object.Attachments.Image.t, int)
            GapiLens.t
          val _type :
            (GapiPlusV1Model.Activity.Object.Attachments.Image.t, string)
            GapiLens.t
          val url :
            (GapiPlusV1Model.Activity.Object.Attachments.Image.t, string)
            GapiLens.t
          val width :
            (GapiPlusV1Model.Activity.Object.Attachments.Image.t, int)
            GapiLens.t
          val empty : GapiPlusV1Model.Activity.Object.Attachments.Image.t
          val render :
            GapiPlusV1Model.Activity.Object.Attachments.Image.t ->
            GapiJson.json_data_model list
          val parse :
            GapiPlusV1Model.Activity.Object.Attachments.Image.t ->
            GapiJson.json_data_model ->
            GapiPlusV1Model.Activity.Object.Attachments.Image.t
        end
      module FullImage :
        sig
          type t = {
            height : int;
            _type : string;
            url : string;
            width : int;
          }
          val height :
            (GapiPlusV1Model.Activity.Object.Attachments.FullImage.t, int)
            GapiLens.t
          val _type :
            (GapiPlusV1Model.Activity.Object.Attachments.FullImage.t, string)
            GapiLens.t
          val url :
            (GapiPlusV1Model.Activity.Object.Attachments.FullImage.t, string)
            GapiLens.t
          val width :
            (GapiPlusV1Model.Activity.Object.Attachments.FullImage.t, int)
            GapiLens.t
          val empty : GapiPlusV1Model.Activity.Object.Attachments.FullImage.t
          val render :
            GapiPlusV1Model.Activity.Object.Attachments.FullImage.t ->
            GapiJson.json_data_model list
          val parse :
            GapiPlusV1Model.Activity.Object.Attachments.FullImage.t ->
            GapiJson.json_data_model ->
            GapiPlusV1Model.Activity.Object.Attachments.FullImage.t
        end
      module Embed :
        sig
          type t = { _type : string; url : string; }
          val _type :
            (GapiPlusV1Model.Activity.Object.Attachments.Embed.t, string)
            GapiLens.t
          val url :
            (GapiPlusV1Model.Activity.Object.Attachments.Embed.t, string)
            GapiLens.t
          val empty : GapiPlusV1Model.Activity.Object.Attachments.Embed.t
          val render :
            GapiPlusV1Model.Activity.Object.Attachments.Embed.t ->
            GapiJson.json_data_model list
          val parse :
            GapiPlusV1Model.Activity.Object.Attachments.Embed.t ->
            GapiJson.json_data_model ->
            GapiPlusV1Model.Activity.Object.Attachments.Embed.t
        end
      type t = {
        content : string;
        displayName : string;
        embed : GapiPlusV1Model.Activity.Object.Attachments.Embed.t;
        fullImage : GapiPlusV1Model.Activity.Object.Attachments.FullImage.t;
        id : string;
        image : GapiPlusV1Model.Activity.Object.Attachments.Image.t;
        objectType : string;
        thumbnails :
          GapiPlusV1Model.Activity.Object.Attachments.Thumbnails.t list;
        url : string;
      }
      val content :
        (GapiPlusV1Model.Activity.Object.Attachments.t, string) GapiLens.t
      val displayName :
        (GapiPlusV1Model.Activity.Object.Attachments.t, string) GapiLens.t
      val embed :
        (GapiPlusV1Model.Activity.Object.Attachments.t,
         GapiPlusV1Model.Activity.Object.Attachments.Embed.t)
        GapiLens.t
      val fullImage :
        (GapiPlusV1Model.Activity.Object.Attachments.t,
         GapiPlusV1Model.Activity.Object.Attachments.FullImage.t)
        GapiLens.t
      val id :
        (GapiPlusV1Model.Activity.Object.Attachments.t, string) GapiLens.t
      val image :
        (GapiPlusV1Model.Activity.Object.Attachments.t,
         GapiPlusV1Model.Activity.Object.Attachments.Image.t)
        GapiLens.t
      val objectType :
        (GapiPlusV1Model.Activity.Object.Attachments.t, string) GapiLens.t
      val thumbnails :
        (GapiPlusV1Model.Activity.Object.Attachments.t,
         GapiPlusV1Model.Activity.Object.Attachments.Thumbnails.t list)
        GapiLens.t
      val url :
        (GapiPlusV1Model.Activity.Object.Attachments.t, string) GapiLens.t
      val empty : GapiPlusV1Model.Activity.Object.Attachments.t
      val render :
        GapiPlusV1Model.Activity.Object.Attachments.t ->
        GapiJson.json_data_model list
      val parse :
        GapiPlusV1Model.Activity.Object.Attachments.t ->
        GapiJson.json_data_model ->
        GapiPlusV1Model.Activity.Object.Attachments.t
    end
  module Actor :
    sig
      module Verification :
        sig
          type t = { adHocVerified : string; }
          val adHocVerified :
            (GapiPlusV1Model.Activity.Object.Actor.Verification.t, string)
            GapiLens.t
          val empty : GapiPlusV1Model.Activity.Object.Actor.Verification.t
          val render :
            GapiPlusV1Model.Activity.Object.Actor.Verification.t ->
            GapiJson.json_data_model list
          val parse :
            GapiPlusV1Model.Activity.Object.Actor.Verification.t ->
            GapiJson.json_data_model ->
            GapiPlusV1Model.Activity.Object.Actor.Verification.t
        end
      module Image :
        sig
          type t = { url : string; }
          val url :
            (GapiPlusV1Model.Activity.Object.Actor.Image.t, string)
            GapiLens.t
          val empty : GapiPlusV1Model.Activity.Object.Actor.Image.t
          val render :
            GapiPlusV1Model.Activity.Object.Actor.Image.t ->
            GapiJson.json_data_model list
          val parse :
            GapiPlusV1Model.Activity.Object.Actor.Image.t ->
            GapiJson.json_data_model ->
            GapiPlusV1Model.Activity.Object.Actor.Image.t
        end
      module ClientSpecificActorInfo :
        sig
          module YoutubeActorInfo :
            sig
              type t = { channelId : string; }
              val channelId :
                (GapiPlusV1Model.Activity.Object.Actor.ClientSpecificActorInfo.YoutubeActorInfo.t,
                 string)
                GapiLens.t
              val empty :
                GapiPlusV1Model.Activity.Object.Actor.ClientSpecificActorInfo.YoutubeActorInfo.t
              val render :
                GapiPlusV1Model.Activity.Object.Actor.ClientSpecificActorInfo.YoutubeActorInfo.t ->
                GapiJson.json_data_model list
              val parse :
                GapiPlusV1Model.Activity.Object.Actor.ClientSpecificActorInfo.YoutubeActorInfo.t ->
                GapiJson.json_data_model ->
                GapiPlusV1Model.Activity.Object.Actor.ClientSpecificActorInfo.YoutubeActorInfo.t
            end
          type t = {
            youtubeActorInfo :
              GapiPlusV1Model.Activity.Object.Actor.ClientSpecificActorInfo.YoutubeActorInfo.t;
          }
          val youtubeActorInfo :
            (GapiPlusV1Model.Activity.Object.Actor.ClientSpecificActorInfo.t,
             GapiPlusV1Model.Activity.Object.Actor.ClientSpecificActorInfo.YoutubeActorInfo.t)
            GapiLens.t
          val empty :
            GapiPlusV1Model.Activity.Object.Actor.ClientSpecificActorInfo.t
          val render :
            GapiPlusV1Model.Activity.Object.Actor.ClientSpecificActorInfo.t ->
            GapiJson.json_data_model list
          val parse :
            GapiPlusV1Model.Activity.Object.Actor.ClientSpecificActorInfo.t ->
            GapiJson.json_data_model ->
            GapiPlusV1Model.Activity.Object.Actor.ClientSpecificActorInfo.t
        end
      type t = {
        clientSpecificActorInfo :
          GapiPlusV1Model.Activity.Object.Actor.ClientSpecificActorInfo.t;
        displayName : string;
        id : string;
        image : GapiPlusV1Model.Activity.Object.Actor.Image.t;
        url : string;
        verification : GapiPlusV1Model.Activity.Object.Actor.Verification.t;
      }
      val clientSpecificActorInfo :
        (GapiPlusV1Model.Activity.Object.Actor.t,
         GapiPlusV1Model.Activity.Object.Actor.ClientSpecificActorInfo.t)
        GapiLens.t
      val displayName :
        (GapiPlusV1Model.Activity.Object.Actor.t, string) GapiLens.t
      val id : (GapiPlusV1Model.Activity.Object.Actor.t, string) GapiLens.t
      val image :
        (GapiPlusV1Model.Activity.Object.Actor.t,
         GapiPlusV1Model.Activity.Object.Actor.Image.t)
        GapiLens.t
      val url : (GapiPlusV1Model.Activity.Object.Actor.t, string) GapiLens.t
      val verification :
        (GapiPlusV1Model.Activity.Object.Actor.t,
         GapiPlusV1Model.Activity.Object.Actor.Verification.t)
        GapiLens.t
      val empty : GapiPlusV1Model.Activity.Object.Actor.t
      val render :
        GapiPlusV1Model.Activity.Object.Actor.t ->
        GapiJson.json_data_model list
      val parse :
        GapiPlusV1Model.Activity.Object.Actor.t ->
        GapiJson.json_data_model -> GapiPlusV1Model.Activity.Object.Actor.t
    end
  type t = {
    actor : GapiPlusV1Model.Activity.Object.Actor.t;
    attachments : GapiPlusV1Model.Activity.Object.Attachments.t list;
    content : string;
    id : string;
    objectType : string;
    originalContent : string;
    plusoners : GapiPlusV1Model.Activity.Object.Plusoners.t;
    replies : GapiPlusV1Model.Activity.Object.Replies.t;
    resharers : GapiPlusV1Model.Activity.Object.Resharers.t;
    url : string;
  }
  val actor :
    (GapiPlusV1Model.Activity.Object.t,
     GapiPlusV1Model.Activity.Object.Actor.t)
    GapiLens.t
  val attachments :
    (GapiPlusV1Model.Activity.Object.t,
     GapiPlusV1Model.Activity.Object.Attachments.t list)
    GapiLens.t
  val content : (GapiPlusV1Model.Activity.Object.t, string) GapiLens.t
  val id : (GapiPlusV1Model.Activity.Object.t, string) GapiLens.t
  val objectType : (GapiPlusV1Model.Activity.Object.t, string) GapiLens.t
  val originalContent :
    (GapiPlusV1Model.Activity.Object.t, string) GapiLens.t
  val plusoners :
    (GapiPlusV1Model.Activity.Object.t,
     GapiPlusV1Model.Activity.Object.Plusoners.t)
    GapiLens.t
  val replies :
    (GapiPlusV1Model.Activity.Object.t,
     GapiPlusV1Model.Activity.Object.Replies.t)
    GapiLens.t
  val resharers :
    (GapiPlusV1Model.Activity.Object.t,
     GapiPlusV1Model.Activity.Object.Resharers.t)
    GapiLens.t
  val url : (GapiPlusV1Model.Activity.Object.t, string) GapiLens.t
  val empty : GapiPlusV1Model.Activity.Object.t
  val render :
    GapiPlusV1Model.Activity.Object.t -> GapiJson.json_data_model list
  val parse :
    GapiPlusV1Model.Activity.Object.t ->
    GapiJson.json_data_model -> GapiPlusV1Model.Activity.Object.t
end