sig
  module Replies :
    sig
      type t = { selfLink : string; totalItems : int64; }
      val selfLink : (GapiBloggerV2Model.Post.Replies.t, string) GapiLens.t
      val totalItems : (GapiBloggerV2Model.Post.Replies.t, int64) GapiLens.t
      val empty : GapiBloggerV2Model.Post.Replies.t
      val render :
        GapiBloggerV2Model.Post.Replies.t -> GapiJson.json_data_model list
      val parse :
        GapiBloggerV2Model.Post.Replies.t ->
        GapiJson.json_data_model -> GapiBloggerV2Model.Post.Replies.t
    end
  module Blog :
    sig
      type t = { id : int64; }
      val id : (GapiBloggerV2Model.Post.Blog.t, int64) GapiLens.t
      val empty : GapiBloggerV2Model.Post.Blog.t
      val render :
        GapiBloggerV2Model.Post.Blog.t -> GapiJson.json_data_model list
      val parse :
        GapiBloggerV2Model.Post.Blog.t ->
        GapiJson.json_data_model -> GapiBloggerV2Model.Post.Blog.t
    end
  module Author :
    sig
      module Image :
        sig
          type t = { url : string; }
          val url :
            (GapiBloggerV2Model.Post.Author.Image.t, string) GapiLens.t
          val empty : GapiBloggerV2Model.Post.Author.Image.t
          val render :
            GapiBloggerV2Model.Post.Author.Image.t ->
            GapiJson.json_data_model list
          val parse :
            GapiBloggerV2Model.Post.Author.Image.t ->
            GapiJson.json_data_model ->
            GapiBloggerV2Model.Post.Author.Image.t
        end
      type t = {
        displayName : string;
        id : string;
        image : GapiBloggerV2Model.Post.Author.Image.t;
        url : string;
      }
      val displayName : (GapiBloggerV2Model.Post.Author.t, string) GapiLens.t
      val id : (GapiBloggerV2Model.Post.Author.t, string) GapiLens.t
      val image :
        (GapiBloggerV2Model.Post.Author.t,
         GapiBloggerV2Model.Post.Author.Image.t)
        GapiLens.t
      val url : (GapiBloggerV2Model.Post.Author.t, string) GapiLens.t
      val empty : GapiBloggerV2Model.Post.Author.t
      val render :
        GapiBloggerV2Model.Post.Author.t -> GapiJson.json_data_model list
      val parse :
        GapiBloggerV2Model.Post.Author.t ->
        GapiJson.json_data_model -> GapiBloggerV2Model.Post.Author.t
    end
  type t = {
    author : GapiBloggerV2Model.Post.Author.t;
    blog : GapiBloggerV2Model.Post.Blog.t;
    content : string;
    id : int64;
    kind : string;
    labels : string list;
    published : GapiDate.t;
    replies : GapiBloggerV2Model.Post.Replies.t;
    selfLink : string;
    title : string;
    updated : GapiDate.t;
    url : string;
  }
  val author :
    (GapiBloggerV2Model.Post.t, GapiBloggerV2Model.Post.Author.t) GapiLens.t
  val blog :
    (GapiBloggerV2Model.Post.t, GapiBloggerV2Model.Post.Blog.t) GapiLens.t
  val content : (GapiBloggerV2Model.Post.t, string) GapiLens.t
  val id : (GapiBloggerV2Model.Post.t, int64) GapiLens.t
  val kind : (GapiBloggerV2Model.Post.t, string) GapiLens.t
  val labels : (GapiBloggerV2Model.Post.t, string list) GapiLens.t
  val published : (GapiBloggerV2Model.Post.t, GapiDate.t) GapiLens.t
  val replies :
    (GapiBloggerV2Model.Post.t, GapiBloggerV2Model.Post.Replies.t) GapiLens.t
  val selfLink : (GapiBloggerV2Model.Post.t, string) GapiLens.t
  val title : (GapiBloggerV2Model.Post.t, string) GapiLens.t
  val updated : (GapiBloggerV2Model.Post.t, GapiDate.t) GapiLens.t
  val url : (GapiBloggerV2Model.Post.t, string) GapiLens.t
  val empty : GapiBloggerV2Model.Post.t
  val render : GapiBloggerV2Model.Post.t -> GapiJson.json_data_model list
  val parse :
    GapiBloggerV2Model.Post.t ->
    GapiJson.json_data_model -> GapiBloggerV2Model.Post.t
  val to_data_model : GapiBloggerV2Model.Post.t -> GapiJson.json_data_model
  val of_data_model : GapiJson.json_data_model -> GapiBloggerV2Model.Post.t
end