sig   module Response :     sig       type t = { _ref : string; }       val _ref :         (GapiDiscoveryV1Model.RestMethod.Response.t, string) GapiLens.t       val empty : GapiDiscoveryV1Model.RestMethod.Response.t       val render :         GapiDiscoveryV1Model.RestMethod.Response.t ->         GapiJson.json_data_model list       val parse :         GapiDiscoveryV1Model.RestMethod.Response.t ->         GapiJson.json_data_model ->         GapiDiscoveryV1Model.RestMethod.Response.t     end   module Request :     sig       type t = { _ref : string; parameterName : string; }       val _ref :         (GapiDiscoveryV1Model.RestMethod.Request.t, string) GapiLens.t       val parameterName :         (GapiDiscoveryV1Model.RestMethod.Request.t, string) GapiLens.t       val empty : GapiDiscoveryV1Model.RestMethod.Request.t       val render :         GapiDiscoveryV1Model.RestMethod.Request.t ->         GapiJson.json_data_model list       val parse :         GapiDiscoveryV1Model.RestMethod.Request.t ->         GapiJson.json_data_model -> GapiDiscoveryV1Model.RestMethod.Request.t     end   module MediaUpload :     sig       module Protocols :         sig           module Simple :             sig               type t = { multipart : bool; path : string; }               val multipart :                 (GapiDiscoveryV1Model.RestMethod.MediaUpload.Protocols.Simple.t,                  bool)                 GapiLens.t               val path :                 (GapiDiscoveryV1Model.RestMethod.MediaUpload.Protocols.Simple.t,                  string)                 GapiLens.t               val empty :                 GapiDiscoveryV1Model.RestMethod.MediaUpload.Protocols.Simple.t               val render :                 GapiDiscoveryV1Model.RestMethod.MediaUpload.Protocols.Simple.t ->                 GapiJson.json_data_model list               val parse :                 GapiDiscoveryV1Model.RestMethod.MediaUpload.Protocols.Simple.t ->                 GapiJson.json_data_model ->                 GapiDiscoveryV1Model.RestMethod.MediaUpload.Protocols.Simple.t             end           module Resumable :             sig               type t = { multipart : bool; path : string; }               val multipart :                 (GapiDiscoveryV1Model.RestMethod.MediaUpload.Protocols.Resumable.t,                  bool)                 GapiLens.t               val path :                 (GapiDiscoveryV1Model.RestMethod.MediaUpload.Protocols.Resumable.t,                  string)                 GapiLens.t               val empty :                 GapiDiscoveryV1Model.RestMethod.MediaUpload.Protocols.Resumable.t               val render :                 GapiDiscoveryV1Model.RestMethod.MediaUpload.Protocols.Resumable.t ->                 GapiJson.json_data_model list               val parse :                 GapiDiscoveryV1Model.RestMethod.MediaUpload.Protocols.Resumable.t ->                 GapiJson.json_data_model ->                 GapiDiscoveryV1Model.RestMethod.MediaUpload.Protocols.Resumable.t             end           type t = {             resumable :               GapiDiscoveryV1Model.RestMethod.MediaUpload.Protocols.Resumable.t;             simple :               GapiDiscoveryV1Model.RestMethod.MediaUpload.Protocols.Simple.t;           }           val resumable :             (GapiDiscoveryV1Model.RestMethod.MediaUpload.Protocols.t,              GapiDiscoveryV1Model.RestMethod.MediaUpload.Protocols.Resumable.t)             GapiLens.t           val simple :             (GapiDiscoveryV1Model.RestMethod.MediaUpload.Protocols.t,              GapiDiscoveryV1Model.RestMethod.MediaUpload.Protocols.Simple.t)             GapiLens.t           val empty : GapiDiscoveryV1Model.RestMethod.MediaUpload.Protocols.t           val render :             GapiDiscoveryV1Model.RestMethod.MediaUpload.Protocols.t ->             GapiJson.json_data_model list           val parse :             GapiDiscoveryV1Model.RestMethod.MediaUpload.Protocols.t ->             GapiJson.json_data_model ->             GapiDiscoveryV1Model.RestMethod.MediaUpload.Protocols.t         end       type t = {         accept : string list;         maxSize : string;         protocols : GapiDiscoveryV1Model.RestMethod.MediaUpload.Protocols.t;       }       val accept :         (GapiDiscoveryV1Model.RestMethod.MediaUpload.t, string list)         GapiLens.t       val maxSize :         (GapiDiscoveryV1Model.RestMethod.MediaUpload.t, string) GapiLens.t       val protocols :         (GapiDiscoveryV1Model.RestMethod.MediaUpload.t,          GapiDiscoveryV1Model.RestMethod.MediaUpload.Protocols.t)         GapiLens.t       val empty : GapiDiscoveryV1Model.RestMethod.MediaUpload.t       val render :         GapiDiscoveryV1Model.RestMethod.MediaUpload.t ->         GapiJson.json_data_model list       val parse :         GapiDiscoveryV1Model.RestMethod.MediaUpload.t ->         GapiJson.json_data_model ->         GapiDiscoveryV1Model.RestMethod.MediaUpload.t     end   type t = {     description : string;     etagRequired : bool;     httpMethod : string;     id : string;     mediaUpload : GapiDiscoveryV1Model.RestMethod.MediaUpload.t;     parameterOrder : string list;     parameters : (string * GapiDiscoveryV1Model.JsonSchema.t) list;     path : string;     request : GapiDiscoveryV1Model.RestMethod.Request.t;     response : GapiDiscoveryV1Model.RestMethod.Response.t;     scopes : string list;     supportsMediaDownload : bool;     supportsMediaUpload : bool;     supportsSubscription : bool;     useMediaDownloadService : bool;   }   val description : (GapiDiscoveryV1Model.RestMethod.t, string) GapiLens.t   val etagRequired : (GapiDiscoveryV1Model.RestMethod.t, bool) GapiLens.t   val httpMethod : (GapiDiscoveryV1Model.RestMethod.t, string) GapiLens.t   val id : (GapiDiscoveryV1Model.RestMethod.t, string) GapiLens.t   val mediaUpload :     (GapiDiscoveryV1Model.RestMethod.t,      GapiDiscoveryV1Model.RestMethod.MediaUpload.t)     GapiLens.t   val parameterOrder :     (GapiDiscoveryV1Model.RestMethod.t, string list) GapiLens.t   val parameters :     (GapiDiscoveryV1Model.RestMethod.t,      (string * GapiDiscoveryV1Model.JsonSchema.t) list)     GapiLens.t   val path : (GapiDiscoveryV1Model.RestMethod.t, string) GapiLens.t   val request :     (GapiDiscoveryV1Model.RestMethod.t,      GapiDiscoveryV1Model.RestMethod.Request.t)     GapiLens.t   val response :     (GapiDiscoveryV1Model.RestMethod.t,      GapiDiscoveryV1Model.RestMethod.Response.t)     GapiLens.t   val scopes : (GapiDiscoveryV1Model.RestMethod.t, string list) GapiLens.t   val supportsMediaDownload :     (GapiDiscoveryV1Model.RestMethod.t, bool) GapiLens.t   val supportsMediaUpload :     (GapiDiscoveryV1Model.RestMethod.t, bool) GapiLens.t   val supportsSubscription :     (GapiDiscoveryV1Model.RestMethod.t, bool) GapiLens.t   val useMediaDownloadService :     (GapiDiscoveryV1Model.RestMethod.t, bool) GapiLens.t   val empty : GapiDiscoveryV1Model.RestMethod.t   val render :     GapiDiscoveryV1Model.RestMethod.t -> GapiJson.json_data_model list   val parse :     GapiDiscoveryV1Model.RestMethod.t ->     GapiJson.json_data_model -> GapiDiscoveryV1Model.RestMethod.t   val to_data_model :     GapiDiscoveryV1Model.RestMethod.t -> GapiJson.json_data_model   val of_data_model :     GapiJson.json_data_model -> GapiDiscoveryV1Model.RestMethod.t end