sig   module Icons :     sig       type t = { category : string; iconUrl : string; size : int; }       val category : (GapiDriveV2Model.App.Icons.t, string) GapiLens.t       val iconUrl : (GapiDriveV2Model.App.Icons.t, string) GapiLens.t       val size : (GapiDriveV2Model.App.Icons.t, int) GapiLens.t       val empty : GapiDriveV2Model.App.Icons.t       val render :         GapiDriveV2Model.App.Icons.t -> GapiJson.json_data_model list       val parse :         GapiDriveV2Model.App.Icons.t ->         GapiJson.json_data_model -> GapiDriveV2Model.App.Icons.t     end   type t = {     authorized : bool;     createInFolderTemplate : string;     createUrl : string;     hasDriveWideScope : bool;     icons : GapiDriveV2Model.App.Icons.t list;     id : string;     installed : bool;     kind : string;     longDescription : string;     name : string;     objectType : string;     openUrlTemplate : string;     primaryFileExtensions : string list;     primaryMimeTypes : string list;     productId : string;     productUrl : string;     secondaryFileExtensions : string list;     secondaryMimeTypes : string list;     shortDescription : string;     supportsCreate : bool;     supportsImport : bool;     supportsMultiOpen : bool;     supportsOfflineCreate : bool;     useByDefault : bool;   }   val authorized : (GapiDriveV2Model.App.t, bool) GapiLens.t   val createInFolderTemplate : (GapiDriveV2Model.App.t, string) GapiLens.t   val createUrl : (GapiDriveV2Model.App.t, string) GapiLens.t   val hasDriveWideScope : (GapiDriveV2Model.App.t, bool) GapiLens.t   val icons :     (GapiDriveV2Model.App.t, GapiDriveV2Model.App.Icons.t list) GapiLens.t   val id : (GapiDriveV2Model.App.t, string) GapiLens.t   val installed : (GapiDriveV2Model.App.t, bool) GapiLens.t   val kind : (GapiDriveV2Model.App.t, string) GapiLens.t   val longDescription : (GapiDriveV2Model.App.t, string) GapiLens.t   val name : (GapiDriveV2Model.App.t, string) GapiLens.t   val objectType : (GapiDriveV2Model.App.t, string) GapiLens.t   val openUrlTemplate : (GapiDriveV2Model.App.t, string) GapiLens.t   val primaryFileExtensions :     (GapiDriveV2Model.App.t, string list) GapiLens.t   val primaryMimeTypes : (GapiDriveV2Model.App.t, string list) GapiLens.t   val productId : (GapiDriveV2Model.App.t, string) GapiLens.t   val productUrl : (GapiDriveV2Model.App.t, string) GapiLens.t   val secondaryFileExtensions :     (GapiDriveV2Model.App.t, string list) GapiLens.t   val secondaryMimeTypes : (GapiDriveV2Model.App.t, string list) GapiLens.t   val shortDescription : (GapiDriveV2Model.App.t, string) GapiLens.t   val supportsCreate : (GapiDriveV2Model.App.t, bool) GapiLens.t   val supportsImport : (GapiDriveV2Model.App.t, bool) GapiLens.t   val supportsMultiOpen : (GapiDriveV2Model.App.t, bool) GapiLens.t   val supportsOfflineCreate : (GapiDriveV2Model.App.t, bool) GapiLens.t   val useByDefault : (GapiDriveV2Model.App.t, bool) GapiLens.t   val empty : GapiDriveV2Model.App.t   val render : GapiDriveV2Model.App.t -> GapiJson.json_data_model list   val parse :     GapiDriveV2Model.App.t ->     GapiJson.json_data_model -> GapiDriveV2Model.App.t   val to_data_model : GapiDriveV2Model.App.t -> GapiJson.json_data_model   val of_data_model : GapiJson.json_data_model -> GapiDriveV2Model.App.t end