sig
  module Provider :
    sig
      type t = { title : string; }
      val title : (GapiPlusV1Model.Activity.Provider.t, string) GapiLens.t
      val empty : GapiPlusV1Model.Activity.Provider.t
      val render :
        GapiPlusV1Model.Activity.Provider.t -> GapiJson.json_data_model list
      val parse :
        GapiPlusV1Model.Activity.Provider.t ->
        GapiJson.json_data_model -> GapiPlusV1Model.Activity.Provider.t
    end
  module Object :
    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
  module Actor :
    sig
      module Verification :
        sig
          type t = { adHocVerified : string; }
          val adHocVerified :
            (GapiPlusV1Model.Activity.Actor.Verification.t, string)
            GapiLens.t
          val empty : GapiPlusV1Model.Activity.Actor.Verification.t
          val render :
            GapiPlusV1Model.Activity.Actor.Verification.t ->
            GapiJson.json_data_model list
          val parse :
            GapiPlusV1Model.Activity.Actor.Verification.t ->
            GapiJson.json_data_model ->
            GapiPlusV1Model.Activity.Actor.Verification.t
        end
      module Name :
        sig
          type t = { familyName : string; givenName : string; }
          val familyName :
            (GapiPlusV1Model.Activity.Actor.Name.t, string) GapiLens.t
          val givenName :
            (GapiPlusV1Model.Activity.Actor.Name.t, string) GapiLens.t
          val empty : GapiPlusV1Model.Activity.Actor.Name.t
          val render :
            GapiPlusV1Model.Activity.Actor.Name.t ->
            GapiJson.json_data_model list
          val parse :
            GapiPlusV1Model.Activity.Actor.Name.t ->
            GapiJson.json_data_model -> GapiPlusV1Model.Activity.Actor.Name.t
        end
      module Image :
        sig
          type t = { url : string; }
          val url :
            (GapiPlusV1Model.Activity.Actor.Image.t, string) GapiLens.t
          val empty : GapiPlusV1Model.Activity.Actor.Image.t
          val render :
            GapiPlusV1Model.Activity.Actor.Image.t ->
            GapiJson.json_data_model list
          val parse :
            GapiPlusV1Model.Activity.Actor.Image.t ->
            GapiJson.json_data_model ->
            GapiPlusV1Model.Activity.Actor.Image.t
        end
      module ClientSpecificActorInfo :
        sig
          module YoutubeActorInfo :
            sig
              type t = { channelId : string; }
              val channelId :
                (GapiPlusV1Model.Activity.Actor.ClientSpecificActorInfo.YoutubeActorInfo.t,
                 string)
                GapiLens.t
              val empty :
                GapiPlusV1Model.Activity.Actor.ClientSpecificActorInfo.YoutubeActorInfo.t
              val render :
                GapiPlusV1Model.Activity.Actor.ClientSpecificActorInfo.YoutubeActorInfo.t ->
                GapiJson.json_data_model list
              val parse :
                GapiPlusV1Model.Activity.Actor.ClientSpecificActorInfo.YoutubeActorInfo.t ->
                GapiJson.json_data_model ->
                GapiPlusV1Model.Activity.Actor.ClientSpecificActorInfo.YoutubeActorInfo.t
            end
          type t = {
            youtubeActorInfo :
              GapiPlusV1Model.Activity.Actor.ClientSpecificActorInfo.YoutubeActorInfo.t;
          }
          val youtubeActorInfo :
            (GapiPlusV1Model.Activity.Actor.ClientSpecificActorInfo.t,
             GapiPlusV1Model.Activity.Actor.ClientSpecificActorInfo.YoutubeActorInfo.t)
            GapiLens.t
          val empty :
            GapiPlusV1Model.Activity.Actor.ClientSpecificActorInfo.t
          val render :
            GapiPlusV1Model.Activity.Actor.ClientSpecificActorInfo.t ->
            GapiJson.json_data_model list
          val parse :
            GapiPlusV1Model.Activity.Actor.ClientSpecificActorInfo.t ->
            GapiJson.json_data_model ->
            GapiPlusV1Model.Activity.Actor.ClientSpecificActorInfo.t
        end
      type t = {
        clientSpecificActorInfo :
          GapiPlusV1Model.Activity.Actor.ClientSpecificActorInfo.t;
        displayName : string;
        id : string;
        image : GapiPlusV1Model.Activity.Actor.Image.t;
        name : GapiPlusV1Model.Activity.Actor.Name.t;
        url : string;
        verification : GapiPlusV1Model.Activity.Actor.Verification.t;
      }
      val clientSpecificActorInfo :
        (GapiPlusV1Model.Activity.Actor.t,
         GapiPlusV1Model.Activity.Actor.ClientSpecificActorInfo.t)
        GapiLens.t
      val displayName : (GapiPlusV1Model.Activity.Actor.t, string) GapiLens.t
      val id : (GapiPlusV1Model.Activity.Actor.t, string) GapiLens.t
      val image :
        (GapiPlusV1Model.Activity.Actor.t,
         GapiPlusV1Model.Activity.Actor.Image.t)
        GapiLens.t
      val name :
        (GapiPlusV1Model.Activity.Actor.t,
         GapiPlusV1Model.Activity.Actor.Name.t)
        GapiLens.t
      val url : (GapiPlusV1Model.Activity.Actor.t, string) GapiLens.t
      val verification :
        (GapiPlusV1Model.Activity.Actor.t,
         GapiPlusV1Model.Activity.Actor.Verification.t)
        GapiLens.t
      val empty : GapiPlusV1Model.Activity.Actor.t
      val render :
        GapiPlusV1Model.Activity.Actor.t -> GapiJson.json_data_model list
      val parse :
        GapiPlusV1Model.Activity.Actor.t ->
        GapiJson.json_data_model -> GapiPlusV1Model.Activity.Actor.t
    end
  type t = {
    access : GapiPlusV1Model.Acl.t;
    actor : GapiPlusV1Model.Activity.Actor.t;
    address : string;
    annotation : string;
    crosspostSource : string;
    etag : string;
    geocode : string;
    id : string;
    kind : string;
    location : GapiPlusV1Model.Place.t;
    _object : GapiPlusV1Model.Activity.Object.t;
    placeId : string;
    placeName : string;
    provider : GapiPlusV1Model.Activity.Provider.t;
    published : GapiDate.t;
    radius : string;
    title : string;
    updated : GapiDate.t;
    url : string;
    verb : string;
  }
  val access : (GapiPlusV1Model.Activity.t, GapiPlusV1Model.Acl.t) GapiLens.t
  val actor :
    (GapiPlusV1Model.Activity.t, GapiPlusV1Model.Activity.Actor.t) GapiLens.t
  val address : (GapiPlusV1Model.Activity.t, string) GapiLens.t
  val annotation : (GapiPlusV1Model.Activity.t, string) GapiLens.t
  val crosspostSource : (GapiPlusV1Model.Activity.t, string) GapiLens.t
  val etag : (GapiPlusV1Model.Activity.t, string) GapiLens.t
  val geocode : (GapiPlusV1Model.Activity.t, string) GapiLens.t
  val id : (GapiPlusV1Model.Activity.t, string) GapiLens.t
  val kind : (GapiPlusV1Model.Activity.t, string) GapiLens.t
  val location :
    (GapiPlusV1Model.Activity.t, GapiPlusV1Model.Place.t) GapiLens.t
  val _object :
    (GapiPlusV1Model.Activity.t, GapiPlusV1Model.Activity.Object.t)
    GapiLens.t
  val placeId : (GapiPlusV1Model.Activity.t, string) GapiLens.t
  val placeName : (GapiPlusV1Model.Activity.t, string) GapiLens.t
  val provider :
    (GapiPlusV1Model.Activity.t, GapiPlusV1Model.Activity.Provider.t)
    GapiLens.t
  val published : (GapiPlusV1Model.Activity.t, GapiDate.t) GapiLens.t
  val radius : (GapiPlusV1Model.Activity.t, string) GapiLens.t
  val title : (GapiPlusV1Model.Activity.t, string) GapiLens.t
  val updated : (GapiPlusV1Model.Activity.t, GapiDate.t) GapiLens.t
  val url : (GapiPlusV1Model.Activity.t, string) GapiLens.t
  val verb : (GapiPlusV1Model.Activity.t, string) GapiLens.t
  val empty : GapiPlusV1Model.Activity.t
  val render : GapiPlusV1Model.Activity.t -> GapiJson.json_data_model list
  val parse :
    GapiPlusV1Model.Activity.t ->
    GapiJson.json_data_model -> GapiPlusV1Model.Activity.t
  val to_data_model : GapiPlusV1Model.Activity.t -> GapiJson.json_data_model
  val of_data_model : GapiJson.json_data_model -> GapiPlusV1Model.Activity.t
end