sig
  module TaskList :
    sig
      type t = {
        etag : string;
        id : string;
        kind : string;
        selfLink : string;
        title : string;
        updated : GapiDate.t;
      }
      val etag : (GapiTasksV1Model.TaskList.t, string) GapiLens.t
      val id : (GapiTasksV1Model.TaskList.t, string) GapiLens.t
      val kind : (GapiTasksV1Model.TaskList.t, string) GapiLens.t
      val selfLink : (GapiTasksV1Model.TaskList.t, string) GapiLens.t
      val title : (GapiTasksV1Model.TaskList.t, string) GapiLens.t
      val updated : (GapiTasksV1Model.TaskList.t, GapiDate.t) GapiLens.t
      val empty : GapiTasksV1Model.TaskList.t
      val render :
        GapiTasksV1Model.TaskList.t -> GapiJson.json_data_model list
      val parse :
        GapiTasksV1Model.TaskList.t ->
        GapiJson.json_data_model -> GapiTasksV1Model.TaskList.t
      val to_data_model :
        GapiTasksV1Model.TaskList.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiTasksV1Model.TaskList.t
    end
  module TaskLists :
    sig
      type t = {
        etag : string;
        items : GapiTasksV1Model.TaskList.t list;
        kind : string;
        nextPageToken : string;
      }
      val etag : (GapiTasksV1Model.TaskLists.t, string) GapiLens.t
      val items :
        (GapiTasksV1Model.TaskLists.t, GapiTasksV1Model.TaskList.t list)
        GapiLens.t
      val kind : (GapiTasksV1Model.TaskLists.t, string) GapiLens.t
      val nextPageToken : (GapiTasksV1Model.TaskLists.t, string) GapiLens.t
      val empty : GapiTasksV1Model.TaskLists.t
      val render :
        GapiTasksV1Model.TaskLists.t -> GapiJson.json_data_model list
      val parse :
        GapiTasksV1Model.TaskLists.t ->
        GapiJson.json_data_model -> GapiTasksV1Model.TaskLists.t
      val to_data_model :
        GapiTasksV1Model.TaskLists.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiTasksV1Model.TaskLists.t
    end
  module Task :
    sig
      module Links :
        sig
          type t = { description : string; link : string; _type : string; }
          val description :
            (GapiTasksV1Model.Task.Links.t, string) GapiLens.t
          val link : (GapiTasksV1Model.Task.Links.t, string) GapiLens.t
          val _type : (GapiTasksV1Model.Task.Links.t, string) GapiLens.t
          val empty : GapiTasksV1Model.Task.Links.t
          val render :
            GapiTasksV1Model.Task.Links.t -> GapiJson.json_data_model list
          val parse :
            GapiTasksV1Model.Task.Links.t ->
            GapiJson.json_data_model -> GapiTasksV1Model.Task.Links.t
        end
      type t = {
        completed : GapiDate.t;
        deleted : bool;
        due : GapiDate.t;
        etag : string;
        hidden : bool;
        id : string;
        kind : string;
        links : GapiTasksV1Model.Task.Links.t list;
        notes : string;
        parent : string;
        position : string;
        selfLink : string;
        status : string;
        title : string;
        updated : GapiDate.t;
      }
      val completed : (GapiTasksV1Model.Task.t, GapiDate.t) GapiLens.t
      val deleted : (GapiTasksV1Model.Task.t, bool) GapiLens.t
      val due : (GapiTasksV1Model.Task.t, GapiDate.t) GapiLens.t
      val etag : (GapiTasksV1Model.Task.t, string) GapiLens.t
      val hidden : (GapiTasksV1Model.Task.t, bool) GapiLens.t
      val id : (GapiTasksV1Model.Task.t, string) GapiLens.t
      val kind : (GapiTasksV1Model.Task.t, string) GapiLens.t
      val links :
        (GapiTasksV1Model.Task.t, GapiTasksV1Model.Task.Links.t list)
        GapiLens.t
      val notes : (GapiTasksV1Model.Task.t, string) GapiLens.t
      val parent : (GapiTasksV1Model.Task.t, string) GapiLens.t
      val position : (GapiTasksV1Model.Task.t, string) GapiLens.t
      val selfLink : (GapiTasksV1Model.Task.t, string) GapiLens.t
      val status : (GapiTasksV1Model.Task.t, string) GapiLens.t
      val title : (GapiTasksV1Model.Task.t, string) GapiLens.t
      val updated : (GapiTasksV1Model.Task.t, GapiDate.t) GapiLens.t
      val empty : GapiTasksV1Model.Task.t
      val render : GapiTasksV1Model.Task.t -> GapiJson.json_data_model list
      val parse :
        GapiTasksV1Model.Task.t ->
        GapiJson.json_data_model -> GapiTasksV1Model.Task.t
      val to_data_model : GapiTasksV1Model.Task.t -> GapiJson.json_data_model
      val of_data_model : GapiJson.json_data_model -> GapiTasksV1Model.Task.t
    end
  module Tasks :
    sig
      type t = {
        etag : string;
        items : GapiTasksV1Model.Task.t list;
        kind : string;
        nextPageToken : string;
      }
      val etag : (GapiTasksV1Model.Tasks.t, string) GapiLens.t
      val items :
        (GapiTasksV1Model.Tasks.t, GapiTasksV1Model.Task.t list) GapiLens.t
      val kind : (GapiTasksV1Model.Tasks.t, string) GapiLens.t
      val nextPageToken : (GapiTasksV1Model.Tasks.t, string) GapiLens.t
      val empty : GapiTasksV1Model.Tasks.t
      val render : GapiTasksV1Model.Tasks.t -> GapiJson.json_data_model list
      val parse :
        GapiTasksV1Model.Tasks.t ->
        GapiJson.json_data_model -> GapiTasksV1Model.Tasks.t
      val to_data_model :
        GapiTasksV1Model.Tasks.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiTasksV1Model.Tasks.t
    end
end